summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>2014-07-13 11:51:04 +0700
committerJunio C Hamano <gitster@pobox.com>2014-07-17 11:05:42 -0700
commitb29b44bf67fd91ec024da240914b6465fae21cac (patch)
tree4ff845cc36ec64ae7be80b992f3e864712d9852f
parent8fb1d49cbc0eee87eaf2fe447005b583ec76c04d (diff)
downloadgit-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.c21
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);
}