diff options
author | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2014-07-13 11:51:04 +0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-07-17 11:05:42 -0700 |
commit | b29b44bf67fd91ec024da240914b6465fae21cac (patch) | |
tree | 4ff845cc36ec64ae7be80b992f3e864712d9852f | |
parent | 8fb1d49cbc0eee87eaf2fe447005b583ec76c04d (diff) | |
download | git-b29b44bf67fd91ec024da240914b6465fae21cac.tar.gz |
gc: factor out gc.pruneexpire parsing code
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | builtin/gc.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/builtin/gc.c b/builtin/gc.c index 3bfb990728..e38c9021c2 100644 --- a/builtin/gc.c +++ b/builtin/gc.c @@ -55,6 +55,17 @@ static void remove_pidfile_on_signal(int signo) raise(signo); } +static int git_config_date_string(const char **output, + const char *var, const char *value) +{ + if (value && strcmp(value, "now")) { + unsigned long now = approxidate("now"); + if (approxidate(value) >= now) + return error(_("Invalid %s: '%s'"), var, value); + } + return git_config_string(output, var, value); +} + static int gc_config(const char *var, const char *value, void *cb) { if (!strcmp(var, "gc.packrefs")) { @@ -84,14 +95,8 @@ static int gc_config(const char *var, const char *value, void *cb) detach_auto = git_config_bool(var, value); return 0; } - if (!strcmp(var, "gc.pruneexpire")) { - if (value && strcmp(value, "now")) { - unsigned long now = approxidate("now"); - if (approxidate(value) >= now) - return error(_("Invalid %s: '%s'"), var, value); - } - return git_config_string(&prune_expire, var, value); - } + if (!strcmp(var, "gc.pruneexpire")) + return git_config_date_string(&prune_expire, var, value); return git_default_config(var, value, cb); } |