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

Re: Bug in "git rev-parse --verify"

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 28, 2013, 16:52 UTC
Message-ID
<7vli97v558.fsf@alter.siamese.dyndns.org>
In-Reply-To
<20130328153808.GB3337@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 12 quoted lines
> On Thu, Mar 28, 2013 at 04:34:19PM +0100, Michael Haggerty wrote:
>
>> Is there a simple way to verify an object name more strictly and convert
>> it to an SHA1?  I can only think of solutions that require two commands,
>> like
>> 
>>     git cat-file -e $ARG && git rev-parse --verify $ARG
>
> Is the rev-parse line doing anything there? If $ARG does not resolve to
> a sha1, then wouldn't cat-file have failed?
>
> -Peff

You could force rev-parse to resolve the input to an existing object, with something like this:

	git rev-parse --verify "$ARG^{}"

It will unwrap a tag, so the output may end up pointing at a object that is different from $ARG in such a case.

But what is the purpose of turning a random string to a random 40-hex in the first place?

Previous: Jeff KingNext: Michael Haggerty
Message 8 of 22 in “Bug in "git rev-parse --verify"”
  1. Michael HaggertyMar 28, 2013
  2. Jeff KingMar 28, 2013
  3. Junio C HamanoMar 28, 2013
  4. Michael HaggertyMar 28, 2013
  5. Jeff KingMar 28, 2013
  6. Michael HaggertyMar 28, 2013
  7. Jeff KingMar 28, 2013
  8. Junio C HamanoMar 28, 2013
  9. Michael HaggertyMar 30, 2013
  10. Junio C HamanoMar 30, 2013
  11. Junio C HamanoMar 30, 2013
  12. Michael HaggertyMar 30, 2013
  13. Junio C HamanoMar 30, 2013
  14. Junio C HamanoMar 30, 2013
  15. Michael HaggertyMar 30, 2013
  16. Elia PintoMar 30, 2013
  17. 1/2 peel_onion: disambiguate to favor tree-ish when we want a tree-ishJunio C Hamano, Mar 31, 2013
  18. 2/2 peel_onion(): teach $foo^{object} peelerJunio C Hamano, Mar 31, 2013
  19. Michael HaggertyApr 2, 2013
  20. Junio C HamanoApr 2, 2013
  21. Michael HaggertyApr 2, 2013
  22. Junio C HamanoApr 2, 2013

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.