t3308: create a real ref directory/file conflict
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>
Jeff King committed
Oct 6, 2017 at 10:38 UTC
f2515d919e66d4711e50dcc774c47393ba1704ab
1 file changed
+1
-1
t/t3308-notes-merge.sh
+1
-1
@@ -79,7 +79,7 @@ test_expect_success 'fail to merge empty notes ref into empty notes ref (z => y)
79
test_expect_success 'fail to merge into various non-notes refs' '
80
test_must_fail git -c "core.notesRef=refs/notes" notes merge x &&
81
test_must_fail git -c "core.notesRef=refs/notes/" notes merge x &&
82
- mkdir -p .git/refs/notes/dir &&
82
+ git update-ref refs/notes/dir/foo HEAD &&
83
test_must_fail git -c "core.notesRef=refs/notes/dir" notes merge x &&
84
test_must_fail git -c "core.notesRef=refs/notes/dir/" notes merge x &&
85
test_must_fail git -c "core.notesRef=refs/heads/master" notes merge x &&