Skip to content

Commit

Permalink
reflog: honor gc.reflogexpire=never
Browse files Browse the repository at this point in the history
Previously, if gc.reflogexpire or gc.reflogexpire were set to "never"
or "false", the builtin default values were used instead.

Signed-off-by: Adam Simpkins <simpkins@facebook.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Adam Simpkins authored and Junio C Hamano committed Feb 28, 2010
1 parent cbf731e commit 4a9f439
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 4 deletions.
6 changes: 2 additions & 4 deletions builtin-reflog.c
Original file line number Diff line number Diff line change
Expand Up @@ -530,16 +530,14 @@ static int cmd_reflog_expire(int argc, const char **argv, const char *prefix)
int i, status, do_all;
int explicit_expiry = 0;

default_reflog_expire_unreachable = now - 30 * 24 * 3600;
default_reflog_expire = now - 90 * 24 * 3600;
git_config(reflog_expire_config, NULL);

save_commit_buffer = 0;
do_all = status = 0;
memset(&cb, 0, sizeof(cb));

if (!default_reflog_expire_unreachable)
default_reflog_expire_unreachable = now - 30 * 24 * 3600;
if (!default_reflog_expire)
default_reflog_expire = now - 90 * 24 * 3600;
cb.expire_total = default_reflog_expire;
cb.expire_unreachable = default_reflog_expire_unreachable;

Expand Down
41 changes: 41 additions & 0 deletions t/t1410-reflog.sh
Original file line number Diff line number Diff line change
Expand Up @@ -214,4 +214,45 @@ test_expect_success 'delete' '
'

test_expect_success 'rewind2' '
test_tick && git reset --hard HEAD~2 &&
loglen=$(wc -l <.git/logs/refs/heads/master) &&
test $loglen = 4
'

test_expect_success '--expire=never' '
git reflog expire --verbose \
--expire=never \
--expire-unreachable=never \
--all &&
loglen=$(wc -l <.git/logs/refs/heads/master) &&
test $loglen = 4
'

test_expect_success 'gc.reflogexpire=never' '
git config gc.reflogexpire never &&
git config gc.reflogexpireunreachable never &&
git reflog expire --verbose --all &&
loglen=$(wc -l <.git/logs/refs/heads/master) &&
test $loglen = 4
'

test_expect_success 'gc.reflogexpire=false' '
git config gc.reflogexpire false &&
git config gc.reflogexpireunreachable false &&
git reflog expire --verbose --all &&
loglen=$(wc -l <.git/logs/refs/heads/master) &&
test $loglen = 4 &&
git config --unset gc.reflogexpire &&
git config --unset gc.reflogexpireunreachable
'

test_done

0 comments on commit 4a9f439

Please sign in to comment.