{"thread":{"id":"37919","subject":"[PATCH] t1410: Fix for case insensitive filesystems","startedAt":"2014-11-10T01:48:06Z","lastAt":"2014-11-10T06:34:19Z","messageCount":3,"participants":["Brian Gernhardt","Jeff King","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"251645","messageId":"1415584086-41637-1-git-send-email-brian@gernhardtsoftware.com","threadId":"37919","inReplyTo":null,"subject":"[PATCH] t1410: Fix for case insensitive filesystems","fromName":"Brian Gernhardt","fromEmail":"brian@gernhardtsoftware.com","sentAt":"2014-11-10T01:48:06Z","receivedAt":"2014-11-10T01:48:06Z","isPatch":true,"sender":{"key":"brian@gernhardtsoftware.com","avatar":"https://avatars.githubusercontent.com/u/133455?v=4"},"body":"A pair of recently added tests used branches a and a/b, but earlier\ntests created files A and A/B.  On case insensitive filesystems (such\nas HFS+), that causes git to complain about the name being ambiguous\nbetween branch and file.  Resolve by renaming the branches to aa and\naa/bb.\n\nSigned-off-by: Brian Gernhardt <brian@gernhardtsoftware.com>\n---\n t/t1410-reflog.sh | 36 ++++++++++++++++++------------------\n 1 file changed, 18 insertions(+), 18 deletions(-)\n\ndiff --git a/t/t1410-reflog.sh b/t/t1410-reflog.sh\nindex 976c1d4..ac31e19 100755\n--- a/t/t1410-reflog.sh\n+++ b/t/t1410-reflog.sh\n@@ -254,36 +254,36 @@ test_expect_success 'checkout should not delete log for packed ref' '\n '\n \n test_expect_success 'stale dirs do not cause d/f conflicts (reflogs on)' '\n-\ttest_when_finished \"git branch -d a || git branch -d a/b\" &&\n+\ttest_when_finished \"git branch -d aa || git branch -d aa/bb\" &&\n \n-\tgit branch a/b master &&\n-\techo \"a/b@{0} branch: Created from master\" >expect &&\n-\tgit log -g --format=\"%gd %gs\" a/b >actual &&\n+\tgit branch aa/bb master &&\n+\techo \"aa/bb@{0} branch: Created from master\" >expect &&\n+\tgit log -g --format=\"%gd %gs\" aa/bb >actual &&\n \ttest_cmp expect actual &&\n-\tgit branch -d a/b &&\n+\tgit branch -d aa/bb &&\n \n-\t# now logs/refs/heads/a is a stale directory, but\n-\t# we should move it out of the way to create \"a\" reflog\n-\tgit branch a master &&\n-\techo \"a@{0} branch: Created from master\" >expect &&\n-\tgit log -g --format=\"%gd %gs\" a >actual &&\n+\t# now logs/refs/heads/aa is a stale directory, but\n+\t# we should move it out of the way to create \"aa\" reflog\n+\tgit branch aa master &&\n+\techo \"aa@{0} branch: Created from master\" >expect &&\n+\tgit log -g --format=\"%gd %gs\" aa >actual &&\n \ttest_cmp expect actual\n '\n \n test_expect_success 'stale dirs do not cause d/f conflicts (reflogs off)' '\n-\ttest_when_finished \"git branch -d a || git branch -d a/b\" &&\n+\ttest_when_finished \"git branch -d aa || git branch -d aa/bb\" &&\n \n-\tgit branch a/b master &&\n-\techo \"a/b@{0} branch: Created from master\" >expect &&\n-\tgit log -g --format=\"%gd %gs\" a/b >actual &&\n+\tgit branch aa/bb master &&\n+\techo \"aa/bb@{0} branch: Created from master\" >expect &&\n+\tgit log -g --format=\"%gd %gs\" aa/bb >actual &&\n \ttest_cmp expect actual &&\n-\tgit branch -d a/b &&\n+\tgit branch -d aa/bb &&\n \n-\t# same as before, but we only create a reflog for \"a\" if\n+\t# same as before, but we only create a reflog for \"aa\" if\n \t# it already exists, which it does not\n-\tgit -c core.logallrefupdates=false branch a master &&\n+\tgit -c core.logallrefupdates=false branch aa master &&\n \t: >expect &&\n-\tgit log -g --format=\"%gd %gs\" a >actual &&\n+\tgit log -g --format=\"%gd %gs\" aa >actual &&\n \ttest_cmp expect actual\n '\n \n-- \n2.2.0.rc0.209.g31b9a22\n"},{"id":"251649","messageId":"20141110062356.GA8047@peff.net","threadId":"37919","inReplyTo":"1415584086-41637-1-git-send-email-brian@gernhardtsoftware.com","subject":"Re: [PATCH] t1410: Fix for case insensitive filesystems","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2014-11-10T06:23:56Z","receivedAt":"2014-11-10T06:23:56Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Sun, Nov 09, 2014 at 08:48:06PM -0500, Brian Gernhardt wrote:\n\n> A pair of recently added tests used branches a and a/b, but earlier\n> tests created files A and A/B.  On case insensitive filesystems (such\n> as HFS+), that causes git to complain about the name being ambiguous\n> between branch and file.  Resolve by renaming the branches to aa and\n> aa/bb.\n\nAlready being discussed here:\n\n  http://thread.gmane.org/gmane.comp.version-control.git/259250/focus=259253\n\n:)\n\n-Peff\n"},{"id":"251651","messageId":"CAPc5daV9g+kio2esi9avj+5ivQyaTkR4mo12gS-Cxt1KCOKMnA@mail.gmail.com","threadId":"37919","inReplyTo":"20141110062356.GA8047@peff.net","subject":"Re: [PATCH] t1410: Fix for case insensitive filesystems","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2014-11-10T06:34:19Z","receivedAt":"2014-11-10T06:34:19Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"On Sun, Nov 9, 2014 at 10:23 PM, Jeff King <peff@peff.net> wrote:\n> On Sun, Nov 09, 2014 at 08:48:06PM -0500, Brian Gernhardt wrote:\n>\n>> A pair of recently added tests used branches a and a/b, but earlier\n>> tests created files A and A/B.  On case insensitive filesystems (such\n>> as HFS+), that causes git to complain about the name being ambiguous\n>> between branch and file.  Resolve by renaming the branches to aa and\n>> aa/bb.\n>\n> Already being discussed here:\n>\n>   http://thread.gmane.org/gmane.comp.version-control.git/259250/focus=259253\n>\n> :)\n\nRelated tangent for a moderately near future.\n\nOne thing that we may want to play with around this topic is to try\nbuilding an alternative \"ref backend\" that is backed by a filesystem,\nlays out things pretty much the same way as the current \"refs\" (i.e.\none file per ref, directory hierarchy corresponds to slashes in the\nrefname, one file per reflog, etc.), but can be stored on a case\ninsensitive filesystem, as a demonstration of Ronnie's \"ref-transaction\"\nrestructuring series.\n\nPerhaps such a backend may store branch 'a' as 'refs/heads/a' while\nstoring branch 'A' as 'refs/heads/%41' or something, and causes the\nright thing to happen when \"for-each-ref\" enumerates the refs by\nunquoting quoted names and when \"checkout\" asks to check out\nsuch a branch.\n"}]}