diff options
author | Cornelius Weig <cornelius.weig@tngtech.com> | 2017-01-27 13:09:47 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-01-31 21:01:24 +0300 |
commit | 341fb28621201c5e6c9d3fee5baf7c532fa8a618 (patch) | |
tree | 1968a421d74a50dcc53304dd0196af5cf76b8d14 /t/t7004-tag.sh | |
parent | d0c93194ecde2886d4e90d7006c998ea9592d0a0 (diff) |
refs: add option core.logAllRefUpdates = always
When core.logallrefupdates is true, we only create a new reflog for refs
that are under certain well-known hierarchies. The reason is that we
know that some hierarchies (like refs/tags) are not meant to change, and
that unknown hierarchies might not want reflogs at all (e.g., a
hypothetical refs/foo might be meant to change often and drop old
history immediately).
However, sometimes it is useful to override this decision and simply log
for all refs, because the safety and audit trail is more important than
the performance implications of keeping the log around.
This patch introduces a new "always" mode for the core.logallrefupdates
option which will log updates to everything under refs/, regardless
where in the hierarchy it is (we still will not log things like
ORIG_HEAD and FETCH_HEAD, which are known to be transient).
Based-on-patch-by: Jeff King <peff@peff.net>
Signed-off-by: Cornelius Weig <cornelius.weig@tngtech.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t7004-tag.sh')
-rwxr-xr-x | t/t7004-tag.sh | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/t/t7004-tag.sh b/t/t7004-tag.sh index 1cfa8a21d2..1bf622de23 100755 --- a/t/t7004-tag.sh +++ b/t/t7004-tag.sh @@ -71,6 +71,7 @@ test_expect_success 'creating a tag for an unknown revision should fail' ' # commit used in the tests, test_tick is also called here to freeze the date: test_expect_success 'creating a tag using default HEAD should succeed' ' + test_config core.logAllRefUpdates true && test_tick && echo foo >foo && git add foo && @@ -90,6 +91,13 @@ test_expect_success '--create-reflog does not create reflog on failure' ' test_must_fail git reflog exists refs/tags/mytag ' +test_expect_success 'option core.logAllRefUpdates=always creates reflog' ' + test_when_finished "git tag -d tag_with_reflog" && + test_config core.logAllRefUpdates always && + git tag tag_with_reflog && + git reflog exists refs/tags/tag_with_reflog +' + test_expect_success 'listing all tags if one exists should succeed' ' git tag -l && git tag |