[PATCH 0/2] handling alternates paths with colons
- From
Jeff King <peff@peff.net>
- Date
- Dec 12, 2016, 19:49 UTC
- Message-ID
- <20161212194929.bdcihf7orjabzb2h@sigill.intra.peff.net>
- In-Reply-To
- <20161210085133.2pnkz6eqlxoxdckg@sigill.intra.peff.net>
On Sat, Dec 10, 2016 at 03:51:33AM -0500, Jeff King wrote:
Show 15 quoted lines
> So here's the array of options, as I see it: > > 1. Disable quarantine by default; only turn it on if you don't have > any of the funny corner cases. > > 2. Introduce an extra single-item environment variable that gets > appended to the list of alternates, and side-steps quoting issues. > > 3. Introduce a new variable that can hold an alternate list, and > either teach it reasonable quoting semantics, or give it a > less-common separator. > > 4. Introduce quoting to the existing variable, but make the quoting > character sufficiently obscure that nobody cares about the lack of > backwards compatibility.
So I started on (4), but writing the user-facing documentation made me throw up in my mouth a little. Fortunately that inspired me to come up with a fifth option: introduce a quoting mechanism that needs a more obscure signature to kick in, but once kicked-in, uses a less obscure syntax.
So here are patches that do that. It kicks in only when the first character of a path is a double-quote, and then expects the usual C-style quoting. My reasoning is that we wouldn't want to sacrifice '"' for ':', but it's probably OK if we only care about '"' at the very beginning of a path. And it's consistent with many other parts of git which allow optional quoting.
Thoughts?
[1/2]: alternates: accept double-quoted paths [2/2]: tmp-objdir: quote paths we add to alternates
Documentation/git.txt | 6 ++++++ sha1_file.c | 47 +++++++++++++++++++++++++++++++++++----------- t/t5547-push-quarantine.sh | 19 +++++++++++++++++++ t/t5615-alternate-env.sh | 18 ++++++++++++++++++ tmp-objdir.c | 18 +++++++++++++++++- 5 files changed, 96 insertions(+), 12 deletions(-)
-Peff