Thread (17 messages) flat view 17 messages, 5 authors, 2016-06-15

Re: [PATCH] t1410: fix breakage on case-insensitive filesystems

From: Junio C Hamano <hidden>
Date: 2016-06-15 23:02:54

On Sat, Nov 8, 2014 at 5:59 PM, Jeff King [off-list ref] wrote:
Two tests recently added to t1410 create branches "a" and
"a/b" to test d/f conflicts on reflogs. Earlier, unrelated
tests in that script create the path "A/B" in the working
tree.  There's no conflict on a case-sensitive filesystem,
but on a case-insensitive one, "git log" will complain that
"a/b" is both a revision and a working tree path.
Thanks for a clear problem description.
We could fix this by using a "--" to disambiguate, but we
are probably better off using names that are less confusing
to make it more clear that they are unrelated to the working
tree files.  This patch turns "a/b" into "one/two".
Hmph, but the branch a and the file A _do_ have names that are
unrelated to each other, and it is only the case insensitive fs
that is confused ;-).  Renaming is not so bad and certainly is
not wrong per-se as a workaround, but I have this suspicion
that it sends a wrong message to people on such a filesystem,
namely, "you cannot use Git to manage a file called 'master'",
or something silly like that. Disambiguation with double-dashes
does not have such a problem, and instead shows a way how
scripts that are meant to be portable is written. More importantly,
that is more in line with the problem description (i.e. we complain
pointing out the ambiguity, implying that everything is fine as long
as you disambiguate).

So I would rather see the workaround done that way.

But that is only if this were before you actually wrote the patch.
The above is not a preference strong enough to make me ask
you to reroll ;-)

Thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help