diff options
author | Patrick Steinhardt <ps@pks.im> | 2022-03-14 08:42:46 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2022-03-14 22:24:59 +0000 |
commit | 64a6151da7fa4b36eb2818047a9b76797e25b46e (patch) | |
tree | 222091f728c8fe6a6946219834b15025b758f16c /t/t7700-repack.sh | |
parent | Git 2.35.1 (diff) | |
download | tgif-64a6151da7fa4b36eb2818047a9b76797e25b46e.tar.xz |
repack: refactor to avoid double-negation of update-server-info
By default, git-repack(1) runs `update_server_info()` to generate info
required for the dumb HTTP protocol. This can be disabled via the `-n`
flag, which then sets the `no_update_server_info` flag. Further down the
code this leads to some double-negation logic, which is about to become
more confusing as we're about to add a new config which allows the user
to permanently disable generation of the info.
Refactor the code to avoid the double-negation and add some tests which
verify that the flag continues to work as expected.
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t7700-repack.sh')
-rwxr-xr-x | t/t7700-repack.sh | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/t/t7700-repack.sh b/t/t7700-repack.sh index e489869dd9..73270477e4 100755 --- a/t/t7700-repack.sh +++ b/t/t7700-repack.sh @@ -385,4 +385,36 @@ test_expect_success TTY '--quiet disables progress' ' test_must_be_empty stderr ' +test_expect_success 'setup for update-server-info' ' + git init update-server-info && + test_commit -C update-server-info message +' + +test_server_info_present () { + test_path_is_file update-server-info/.git/objects/info/packs && + test_path_is_file update-server-info/.git/info/refs +} + +test_server_info_missing () { + test_path_is_missing update-server-info/.git/objects/info/packs && + test_path_is_missing update-server-info/.git/info/refs +} + +test_server_info_cleanup () { + rm -f update-server-info/.git/objects/info/packs update-server-info/.git/info/refs && + test_server_info_missing +} + +test_expect_success 'updates server info by default' ' + test_server_info_cleanup && + git -C update-server-info repack && + test_server_info_present +' + +test_expect_success '-n skips updating server info' ' + test_server_info_cleanup && + git -C update-server-info repack -n && + test_server_info_missing +' + test_done |