On Sat, Dec 10, 2016 at 03:51:33AM -0500, Jeff King wrote: > 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