From: Michael J Gruber Date: Mon, 02 May 2011 08:42:31 GMT Subject: Re: [RFC/largely untested/PATCH] sha1_name: interpret ~n as HEAD~n Message-ID: <4DBE6E77.3030703@drmicha.warpmail.net> In-Reply-To: Andreas Schwab venit, vidit, dixit 30.04.2011 11:09: > Junio C Hamano writes: > >> Andreas Schwab writes: >> >>> Jeff King writes: >>> >>>> It also conflicts a little with the shell's "~user" syntax, though >>>> presumably you don't have users named "1" and "2". >>> >>> Well, you sorta do if you did use pushd. >> >> Yeah, I was also worried about that. Or some arcane system >> misinterpreting "~0" as the home directory of root ;-) > > On non-arcane systems ~0 is expanded to the current directory. > > Andreas. > [cumulative reply :)] While we could use a short-hand for HEAD also I don't think ~0 really is a concern. Regarding consistency: We try to have reasonable defaults and try to dwim (which are different things) even if that breaks consistency/systematics, because useful/reasonable and "what I mean" depend on the context. "^" resp. ".." and "..." are ambiguous and cannot be resolved easily because for most commands they can mean two things resp. require two arguments. (".." and "..." could maybe default do "@{u}..HEAD" etc.) "~" can only take a revision argument to its left, and also it needs an argument to its left (as opposed to "^"). Therefore we can default it unambiguously and without braking any current usage (that I know of). Regarding rebase -i -: git-rebase (-i) does not have a log/rev-list like interface at all (just like git-cherry does not), and introducing an argument which looks like it did would just increase the user confusion, I'm afraid. Michael