git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [RFC/largely untested/PATCH] sha1_name: interpret ~n as HEAD~n

From
Michael J Gruber <git@drmicha.warpmail.net>
Date
May 2, 2011, 08:42 UTC
Message-ID
<4DBE6E77.3030703@drmicha.warpmail.net>
In-Reply-To
<m21v0kw1es.fsf@igel.home>
Andreas Schwab venit, vidit, dixit 30.04.2011 11:09:
Show 18 quoted lines
> Junio C Hamano <gitster@pobox.com> writes:
> 
>> Andreas Schwab <schwab@linux-m68k.org> writes:
>>
>>> Jeff King <peff@peff.net> 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.)

"~<n>" 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 -<n>: 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
Previous: Andreas SchwabNext: Michael J Gruber
Message 13 of 17 in “sha1_name: interpret ~n as HEAD~n”
  1. sha1_name: interpret ~n as HEAD~nMichael J Gruber, Apr 29, 2011
  2. Junio C HamanoApr 29, 2011
  3. Michael J GruberMay 1, 2011
  4. Matthieu MoyMay 1, 2011
  5. Junio C HamanoMay 1, 2011
  6. Matthieu MoyMay 1, 2011
  7. Jeff KingApr 29, 2011
  8. Sverre RabbelierApr 29, 2011
  9. Mikael MagnussonMay 7, 2011
  10. Andreas SchwabApr 29, 2011
  11. Junio C HamanoApr 30, 2011
  12. Andreas SchwabApr 30, 2011
  13. Michael J GruberMay 2, 2011
  14. Michael J GruberMay 2, 2011
  15. Junio C HamanoMay 2, 2011
  16. Michael J GruberMay 2, 2011
  17. Matthieu MoyMay 2, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.