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