diff options
| author | Junio C Hamano <gitster@pobox.com> | 2020-12-23 13:59:46 -0800 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2020-12-23 13:59:46 -0800 |
| commit | 7a5026529529e811b41de02ca12aa6c8ff3d11c5 (patch) | |
| tree | c21a12770bad4b904073dab1a93c152e609d95e2 | |
| parent | Merge branch 'dl/checkout-p-merge-base' (diff) | |
| parent | t7900-maintenance: test for magic markers (diff) | |
| download | git-7a5026529529e811b41de02ca12aa6c8ff3d11c5.tar.gz git-7a5026529529e811b41de02ca12aa6c8ff3d11c5.zip | |
Merge branch 'ma/maintenance-crontab-fix'
Hotfix for a topic of this cycle.
* ma/maintenance-crontab-fix:
t7900-maintenance: test for magic markers
gc: fix handling of crontab magic markers
git-maintenance.txt: add missing word
| -rw-r--r-- | Documentation/git-maintenance.txt | 2 | ||||
| -rw-r--r-- | builtin/gc.c | 7 | ||||
| -rwxr-xr-x | t/t7900-maintenance.sh | 16 |
3 files changed, 20 insertions, 5 deletions
diff --git a/Documentation/git-maintenance.txt b/Documentation/git-maintenance.txt index 6fec1eb8dc..d1f9b5172d 100644 --- a/Documentation/git-maintenance.txt +++ b/Documentation/git-maintenance.txt @@ -101,7 +101,7 @@ This is done to avoid disrupting the remote-tracking branches. The end users expect these refs to stay unmoved unless they initiate a fetch. With prefetch task, however, the objects necessary to complete a later real fetch would already be obtained, so the real fetch would go faster. In the ideal case, -it will just become an update to bunch of remote-tracking branches without +it will just become an update to a bunch of remote-tracking branches without any object transfer. gc:: diff --git a/builtin/gc.c b/builtin/gc.c index b57fda4924..4c24f41852 100644 --- a/builtin/gc.c +++ b/builtin/gc.c @@ -1554,11 +1554,10 @@ static int update_background_schedule(int run_maintenance) while (!strbuf_getline_lf(&line, cron_list)) { if (!in_old_region && !strcmp(line.buf, BEGIN_LINE)) in_old_region = 1; - if (in_old_region) - continue; - fprintf(cron_in, "%s\n", line.buf); - if (in_old_region && !strcmp(line.buf, END_LINE)) + else if (in_old_region && !strcmp(line.buf, END_LINE)) in_old_region = 0; + else if (!in_old_region) + fprintf(cron_in, "%s\n", line.buf); } if (run_maintenance) { diff --git a/t/t7900-maintenance.sh b/t/t7900-maintenance.sh index d1e0c8f830..99bf0c7582 100755 --- a/t/t7900-maintenance.sh +++ b/t/t7900-maintenance.sh @@ -446,6 +446,22 @@ test_expect_success 'start preserves existing schedule' ' grep "Important information!" cron.txt ' +test_expect_success 'magic markers are correct' ' + grep "GIT MAINTENANCE SCHEDULE" cron.txt >actual && + cat >expect <<-\EOF && + # BEGIN GIT MAINTENANCE SCHEDULE + # END GIT MAINTENANCE SCHEDULE + EOF + test_cmp actual expect +' + +test_expect_success 'stop preserves surrounding schedule' ' + echo "Crucial information!" >>cron.txt && + GIT_TEST_CRONTAB="test-tool crontab cron.txt" git maintenance stop && + grep "Important information!" cron.txt && + grep "Crucial information!" cron.txt +' + test_expect_success 'register preserves existing strategy' ' git config maintenance.strategy none && git maintenance register && |
