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

3 messages, 2 authors, 2016-06-15 · open the first message on its own page

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

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:59:25

Jeff King [off-list ref] writes:
Is it better for "rev-parse" to be more careful, and to behave more like
the rest of git? Or is better to be historically compatible?

One thing to note is that "git rev-parse HEAD" is slightly broken there
already. Because "git rev-parse $some_branch" may do very different
things than what the caller expects if $some_branch does not exist (but
there is a file with the same name). 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.

Thanks.

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

From: Jonathan Nieder <hidden>
Date: 2016-06-15 22:59:25

Junio C Hamano wrote:
quoted
                                     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, but I don't
find it easy to believe that people should have anticipated this
change and added a trailing "--" to more complex rev-parse
expressions.

So to be clear, I think unless it is protected by a new option, this
is a bad idea.

Hope that helps,
Jonathan

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

From: Jonathan Nieder <hidden>
Date: 2016-06-15 22:59:25

Jonathan Nieder wrote:
Isn't this essentially breaking a contract
To clarify, if there were some strong motivation --- e.g.  if this
were resolving some security problem --- then I would be all for
breaking compatibility in this way.  What's confusing to me is that I
just don't see the motivation.  Why wouldn't someone that wants this
functionality be able to pass a flag for it?

Is the idea that without a flag it's easier to teach or something?

Hoping that clarifies,
Jonathan
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help