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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.