summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Schindelin <johannes.schindelin@gmx.de>2019-04-09 10:41:23 (GMT)
committerJunio C Hamano <gitster@pobox.com>2019-04-09 11:10:35 (GMT)
commitdbe7b4101927ad0d45a12b92163626900fce5173 (patch)
treee6ca325cc5c526a1068edfeb155db28e82388bc6
parentaeb582a98374c094361cba1bd756dc6307432c42 (diff)
downloadgit-dbe7b4101927ad0d45a12b92163626900fce5173.zip
git-dbe7b4101927ad0d45a12b92163626900fce5173.tar.gz
git-dbe7b4101927ad0d45a12b92163626900fce5173.tar.bz2
t3301: fix false negative
In 6956f858f6 (notes: implement helpers needed for note copying during rewrite, 2010-03-12), we introduced a test case that verifies that the config setting `notes.rewriteRef` can be overridden via the environment variable `GIT_NOTES_REWRITE_REF`. Back when it was introduced, it relied on a side effect of an earlier test case that configured `core.noteRef` to point to `refs/notes/other`. In 908a320363 (t3301: modernize style, 2014-11-12), this side effect was removed. The test case *still* passed, but for the wrong reason: we no longer overrode the rewrite ref, but there simply was nothing to rewrite anymore, as the overridden notes ref was "modernized" away. Let's let that test case pass for the correct reason again. To make sure of that, let's change the idea of the original test case: it configured `notes.rewriteRef` to point to the actual notes ref, forced that to be ignored and then verified that the notes were *not* rewritten. By turning that idea upside down (configure the `notes.rewriteRef` to another notes ref, override it via the environment variable to force the notes to be copied, and then verify that the notes *were* rewritten), we make it much harder for that test case to pass for the wrong reason. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xt/t3301-notes.sh5
1 files changed, 3 insertions, 2 deletions
diff --git a/t/t3301-notes.sh b/t/t3301-notes.sh
index 84bbf88..704bbc6 100755
--- a/t/t3301-notes.sh
+++ b/t/t3301-notes.sh
@@ -1120,9 +1120,10 @@ test_expect_success 'GIT_NOTES_REWRITE_REF overrides config' '
test_config notes.rewriteMode overwrite &&
test_config notes.rewriteRef refs/notes/other &&
echo $(git rev-parse HEAD^) $(git rev-parse HEAD) |
- GIT_NOTES_REWRITE_REF= git notes copy --for-rewrite=foo &&
+ GIT_NOTES_REWRITE_REF=refs/notes/commits \
+ git notes copy --for-rewrite=foo &&
git log -1 >actual &&
- test_cmp expect actual
+ grep "replacement note 3" actual
'
test_expect_success 'git notes copy diagnoses too many or too few parameters' '