]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t3308: create a real ref directory/file conflict
authorJeff King <peff@peff.net>
Fri, 6 Oct 2017 14:38:30 +0000 (10:38 -0400)
committerJunio C Hamano <gitster@pobox.com>
Sat, 7 Oct 2017 01:31:52 +0000 (10:31 +0900)
A test in t3308 wants to make sure that we don't
accidentally merge into "refs/notes/dir" when it exists as a
directory, so it does:

  mkdir .git/refs/notes/dir
  git -c core.notesRef=refs/notes/dir merge ...

and expects the second command to fail. But that
understimates the refs code, which is smart enough to remove
useless directories in the refs hierarchy. The test
succeeded only because of a bug which prevented resolving
refs/notes/dir for writing, even though an actual ref update
would succeed.

In preparation for fixing that bug, let's switch to creating
a real ref in refs/notes/dir, which is a more realistic
situation.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t3308-notes-merge.sh

index 19aed7ec953b3d384a2f44ee2bae7fd4c92fc5fa..ab946a5153c041de92bde52aed4d47c2a0d80b21 100755 (executable)
@@ -79,7 +79,7 @@ test_expect_success 'fail to merge empty notes ref into empty notes ref (z => y)
 test_expect_success 'fail to merge into various non-notes refs' '
        test_must_fail git -c "core.notesRef=refs/notes" notes merge x &&
        test_must_fail git -c "core.notesRef=refs/notes/" notes merge x &&
-       mkdir -p .git/refs/notes/dir &&
+       git update-ref refs/notes/dir/foo HEAD &&
        test_must_fail git -c "core.notesRef=refs/notes/dir" notes merge x &&
        test_must_fail git -c "core.notesRef=refs/notes/dir/" notes merge x &&
        test_must_fail git -c "core.notesRef=refs/heads/master" notes merge x &&