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

Re: [PATCH v2 0/3] rev-parse and "--"

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 9, 2013, 20:48 UTC
Message-ID
<xmqqob4pycmv.fsf@gitster.dls.corp.google.com>
In-Reply-To
<20131209191224.GR29959@google.com>
Jonathan Nieder <jrnieder@gmail.com> writes:
Show 17 quoted lines
> Junio C Hamano wrote:
>
>>>                                      So maybe we are doing a favor by
>>> calling out the problem; if they want a rev, they should be using
>>> "--verify" (or "--").
>>
>> I tend to agree with the reasoning in the last sentence. Let's cook
>> it for a while and see what happens.
>
> Isn't this essentially breaking a contract that would have been relied
> on by any script that used "git rev-parse HEAD~3..HEAD"?  Worse, it's
> breaking that contract in a way that no one would notice until they
> are asked to manipulate a worktree with a file named 'HEAD~3..HEAD'
> --- in other words, the breakage it introduces is painfully subtle.
>
> I agree that "git rev-parse HEAD" is better written as "git rev-parse
> --verify HEAD" and hence not so much worth worrying about,

I do not share the "with --verify is better hence no problem" reasoning. My "not so much worth worrying about" comes solely from a hunch that nobody has "HEAD~3..HEAD" in their working directory, and if somebody has one, then they must be using "--verify" (or a clarifying "--"), because their "git log" and whatever they use "git rev-parse HEAD~3..HEAD" for would behave very differently otherwise.

So it is not merely "--verify is better"---in a situation where the backward incompatibility matters, I doubt the existing behaves sensibly in the first place.

But if we cook it for a while, I suspect that we will find more and more breakages of expectations in the existing scripts in and out of the tree; in general, I hate _any_ change, and I do not mind dropping it ;-).

Previous: Jonathan NiederNext: Jonathan Nieder
Message 24 of 28 in “[BUG] redundant error message”
  1. Duy NguyenDec 5, 2013
  2. Jeff KingDec 5, 2013
  3. Junio C HamanoDec 5, 2013
  4. Jeff KingDec 5, 2013
  5. Junio C HamanoDec 5, 2013
  6. Jeff KingDec 5, 2013
  7. Jeff KingDec 5, 2013
  8. Junio C HamanoDec 5, 2013
  9. 0/2 rev-parse and "--"Jeff King, Dec 6, 2013
  10. 1/2 rev-parse: correctly diagnose revision errors before "--"Jeff King, Dec 6, 2013
  11. 2/2 rev-parse: diagnose ambiguous revision/filename argumentsJeff King, Dec 6, 2013
  12. 0/3 rev-parse and "--"Jeff King, Dec 6, 2013
  13. 1/3 rev-parse: correctly diagnose revision errors before "--"Jeff King, Dec 6, 2013
  14. Jonathan NiederDec 6, 2013
  15. 2/3 rev-parse: be more careful with munging argumentsJeff King, Dec 6, 2013
  16. Jonathan NiederDec 7, 2013
  17. Eric SunshineDec 9, 2013
  18. 3/3 rev-parse: diagnose ambiguous revision/filename argumentsJeff King, Dec 6, 2013
  19. Jonathan NiederDec 6, 2013
  20. Jeff KingDec 6, 2013
  21. Junio C HamanoDec 9, 2013
  22. Jonathan NiederDec 9, 2013
  23. Jonathan NiederDec 9, 2013
  24. Junio C HamanoDec 9, 2013
  25. Jonathan NiederDec 9, 2013
  26. Junio C HamanoDec 9, 2013
  27. Duy NguyenDec 6, 2013
  28. Jeff KingDec 6, 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.