@matheusbsbs / matheus-bagliano / commits / 4a9f439415
Fork 0

reflog: honor gc.reflogexpire=never

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>

Adam Simpkins committed Feb 26, 2010 at 19:50 UTC 4a9f439415eda734914c7328a2326ee9590246ee
2 files changed +43 -4
builtin-reflog.c
+2 -4
@@ -530,16 +530,14 @@ static int cmd_reflog_expire(int argc, const char **argv, const char *prefix)
530 int i, status, do_all;
531 int explicit_expiry = 0;
532
533 + default_reflog_expire_unreachable = now - 30 * 24 * 3600;
534 + default_reflog_expire = now - 90 * 24 * 3600;
535 git_config(reflog_expire_config, NULL);
536
537 save_commit_buffer = 0;
538 do_all = status = 0;
539 memset(&cb, 0, sizeof(cb));
540
539 - if (!default_reflog_expire_unreachable)
540 - default_reflog_expire_unreachable = now - 30 * 24 * 3600;
541 - if (!default_reflog_expire)
542 - default_reflog_expire = now - 90 * 24 * 3600;
541 cb.expire_total = default_reflog_expire;
542 cb.expire_unreachable = default_reflog_expire_unreachable;
543
t/t1410-reflog.sh
+41
@@ -214,4 +214,45 @@ test_expect_success 'delete' '
214
215 '
216
217 +test_expect_success 'rewind2' '
218 +
219 + test_tick && git reset --hard HEAD~2 &&
220 + loglen=$(wc -l <.git/logs/refs/heads/master) &&
221 + test $loglen = 4
222 +
223 +'
224 +
225 +test_expect_success '--expire=never' '
226 +
227 + git reflog expire --verbose \
228 + --expire=never \
229 + --expire-unreachable=never \
230 + --all &&
231 + loglen=$(wc -l <.git/logs/refs/heads/master) &&
232 + test $loglen = 4
233 +
234 +'
235 +
236 +test_expect_success 'gc.reflogexpire=never' '
237 +
238 + git config gc.reflogexpire never &&
239 + git config gc.reflogexpireunreachable never &&
240 + git reflog expire --verbose --all &&
241 + loglen=$(wc -l <.git/logs/refs/heads/master) &&
242 + test $loglen = 4
243 +'
244 +
245 +test_expect_success 'gc.reflogexpire=false' '
246 +
247 + git config gc.reflogexpire false &&
248 + git config gc.reflogexpireunreachable false &&
249 + git reflog expire --verbose --all &&
250 + loglen=$(wc -l <.git/logs/refs/heads/master) &&
251 + test $loglen = 4 &&
252 +
253 + git config --unset gc.reflogexpire &&
254 + git config --unset gc.reflogexpireunreachable
255 +
256 +'
257 +
258 test_done