From: Jeff King <peff@peff.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: Michael Blume <blume.mike@gmail.com>,
Git Mailing List <git@vger.kernel.org>
Subject: Re: [PATCH] t1410: fix breakage on case-insensitive filesystems
Date: Mon, 10 Nov 2014 01:09:35 -0500 [thread overview]
Message-ID: <20141110060935.GA24860@peff.net> (raw)
In-Reply-To: <CAPc5daUJBs-GwEkJPwru6wjb6pJOMSceEAznXQ+ZW-mOyr-ipw@mail.gmail.com>
On Sun, Nov 09, 2014 at 06:56:45PM -0800, Junio C Hamano wrote:
> > 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.
My main concern is that it leaves t1410 in an "accident waiting to
happen" state, where some hapless developer will add a new test using
a/b and not realizing they need to be careful to disambiguate. The test
will pass for them on Linux, but some luckless OS X user will end up
wasting time tracking down the error.
Or another way of looking at it: it is perfectly possible to have git
manage a file called "master" or even "HEAD". But that does not mean it
is a _good idea_, or is without annoyances. :)
> 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 ;-)
The alternate form is quite trivial. I think I still prefer the
"one/two" version, but here is the "--" patch for reference. You can
decide which to pick up.
-- >8 --
Subject: t1410: fix breakage on case-insensitive filesystems
Two tests recently added to t1410 create branches "a" and
"a/b" to test d/f conflicts on reflogs. Earlier 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.
We can fix this by using "--" to disambiguate.
Signed-off-by: Jeff King <peff@peff.net>
---
t/t1410-reflog.sh | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/t/t1410-reflog.sh b/t/t1410-reflog.sh
index 976c1d4..48bcd59 100755
--- a/t/t1410-reflog.sh
+++ b/t/t1410-reflog.sh
@@ -258,7 +258,7 @@ test_expect_success 'stale dirs do not cause d/f conflicts (reflogs on)' '
git branch a/b master &&
echo "a/b@{0} branch: Created from master" >expect &&
- git log -g --format="%gd %gs" a/b >actual &&
+ git log -g --format="%gd %gs" a/b -- >actual &&
test_cmp expect actual &&
git branch -d a/b &&
@@ -266,7 +266,7 @@ test_expect_success 'stale dirs do not cause d/f conflicts (reflogs on)' '
# we should move it out of the way to create "a" reflog
git branch a master &&
echo "a@{0} branch: Created from master" >expect &&
- git log -g --format="%gd %gs" a >actual &&
+ git log -g --format="%gd %gs" a -- >actual &&
test_cmp expect actual
'
@@ -275,7 +275,7 @@ test_expect_success 'stale dirs do not cause d/f conflicts (reflogs off)' '
git branch a/b master &&
echo "a/b@{0} branch: Created from master" >expect &&
- git log -g --format="%gd %gs" a/b >actual &&
+ git log -g --format="%gd %gs" a/b -- >actual &&
test_cmp expect actual &&
git branch -d a/b &&
@@ -283,7 +283,7 @@ test_expect_success 'stale dirs do not cause d/f conflicts (reflogs off)' '
# it already exists, which it does not
git -c core.logallrefupdates=false branch a master &&
: >expect &&
- git log -g --format="%gd %gs" a >actual &&
+ git log -g --format="%gd %gs" a -- >actual &&
test_cmp expect actual
'
--
2.1.2.596.g7379948
next prev parent reply other threads:[~2014-11-10 6:09 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-08 19:28 Test failure Michael Blume
2014-11-09 1:43 ` Jeff King
2014-11-09 1:59 ` [PATCH] t1410: fix breakage on case-insensitive filesystems Jeff King
2014-11-09 17:34 ` Michael Blume
2014-11-09 17:48 ` Junio C Hamano
2014-11-10 6:30 ` Jeff King
2014-11-10 6:47 ` Junio C Hamano
2014-11-10 7:04 ` Jeff King
2014-11-09 20:04 ` Torsten Bögershausen
2014-11-09 21:36 ` Michael Blume
2014-11-09 21:42 ` Torsten Bögershausen
2014-11-10 2:46 ` Michael Blume
2014-11-10 2:56 ` Junio C Hamano
2014-11-10 6:09 ` Jeff King [this message]
2014-11-12 20:20 ` Johannes Sixt
2014-11-12 21:59 ` Jeff King
2014-11-13 8:50 ` Johannes Sixt
2014-11-13 9:08 ` Jeff King
2014-11-13 16:30 ` Junio C Hamano
2014-11-14 19:11 ` Johannes Sixt
2014-11-14 19:23 ` Jeff King
2014-11-14 20:03 ` Junio C Hamano
2014-11-14 21:04 ` Andreas Schwab
2014-11-15 8:27 ` Johannes Sixt
2014-11-16 21:06 ` [PATCH v2] Windows: correct detection of EISDIR in mingw_open() Johannes Sixt
2014-11-09 5:44 ` Test failure Michael Blume
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20141110060935.GA24860@peff.net \
--to=peff@peff.net \
--cc=blume.mike@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).