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

Re: Weird behavior of git rev-parse

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 14, 2009, 09:07 UTC
Message-ID
<7vvdlvhbtg.fsf@alter.siamese.dyndns.org>
In-Reply-To
<4A5C31CF.2090204@ubicom.com>
Yakup Akbay <yakbay@ubicom.com> writes:
Show 9 quoted lines
> Then I've tried
>
>    $ git rev-parse -'hi, this is a test!'
>
> the output is:
>
>    -hi, this is a test!
>
> Is this an expected behavior?

Absolutely. rev-parse was originally written as a way for Porcelain scripts to sift parameters into four different categories.

 * options and non-options (that's two)
 * args meant for rev-list and others (that's another two)
Multiplying two x two gives you four combinations.

Because you are not giving options like --revs-only, --no-revs, --flags, nor --no-flags, rev-parse outputs everything. You can try these:

$ git rev-parse --no-flags -'Hi' $ git rev-parse --no-revs HEAD $ git rev-parse --flags --no-revs -Hi HEAD

> Another questions is, usage is printed if you omit the commit id in
> git rev-list (E.g. `git rev-list -2`). Is there a reason why HEAD is
> not taken as the default?

The reason is because that is the way it has been, that is the way it is, and changing it will break existing behaviour and scripts. In other words, it is a historical accident without any deep logic.

Besides, "git rev-list" is a plumbing and didn't necessarily want a user-friendliness niceties such as "defaulting to X when nothing is given".

Previous: Santi BéjarNext: Yakup Akbay
Message 3 of 5 in “Weird behavior of git rev-parse”
  1. Yakup AkbayJul 14, 2009
  2. Santi BéjarJul 14, 2009
  3. Junio C HamanoJul 14, 2009
  4. Yakup AkbayJul 14, 2009
  5. Jakub NarebskiJul 14, 2009

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.