Re: [PATCH/alternative/raw and rough] setup.c: denote repo wide pathspecs by ':'
- From
Michael J Gruber <git@drmicha.warpmail.net>
- Date
- Mar 2, 2011, 13:12 UTC
- Message-ID
- <4D6E4246.5080407@drmicha.warpmail.net>
- In-Reply-To
- <AANLkTimPGxzP+XfX8Ng5U_4UnPWZCFLQ-3rP4oPTE3o+@mail.gmail.com>
Nguyen Thai Ngoc Duy venit, vidit, dixit 02.03.2011 13:57:
Show 17 quoted lines
> On Wed, Mar 2, 2011 at 7:34 PM, Sverre Rabbelier <srabbelier@gmail.com> wrote: >> Heya, >> >> On Tue, Mar 1, 2011 at 16:01, Michael J Gruber <git@drmicha.warpmail.net> wrote: >>> I have to say I'm really excited about how transparently this works >>> across all kinds of commands, and how suggestive this is with rev:path >>> in mind. >> >> I like it, especially considering how small the impact on the codebase >> is. The downside is (once again) backwards compatibility though, I >> haven't heard much on how to address that, other than "just quote it" >> (which _I_ think is fine, people with filenames that start with fancy >> characters are probably used to quoting them anyway) > > Yeah. And if this is accepted, the "git add -u (without dot)" issue > may cool down. I personally don't mind typing "git add -u :" (or "git > add -u :/").
Why not even ":)"
Seriously, I'm glad this is gaining support. As for the notation, I tried to take several things into account, which is only possible by compromising somewhat on some:
- usability (as short as possible - 1 char optimum, 2 at most)
- suggestiveness, e.g. ":path" like in "rev:path" in line with git usage, or "/path" in line with unix usage (although this has the wrong connotation of being anchored at root)
- backward compatibility (new code does not misinterpret old notation)
- msysgit compatibility (I think "/" has issues)
- disambiguation from other notation (notably rev:path)
I ended up compromising slightly on the last one. Note that this does not introduce additional ambiguities for existing use cases[*], only for the new notation, i.e. commands expecting "treeish pathspec" need a helping double dash when they are feed the new :pathspec without a treeish.
Michael
[*] I keep forgetting that some people may have files whose names begin with ":". They are ambiguous now already with "treeish pathspec" commands, but not with "pathspec" commands. The latter would change.