diff --git a/builtin-receive-pack.c b/builtin-receive-pack.c
index b771fe9b20f4c4d6e19289f428442d489aba6896..b6895d3f992f17e215d98f185a024a3e4041e507 100644 (file)
--- a/builtin-receive-pack.c
+++ b/builtin-receive-pack.c
static int unpack_limit = 100;
static int report_status;
static int prefer_ofs_delta = 1;
static int unpack_limit = 100;
static int report_status;
static int prefer_ofs_delta = 1;
+static int auto_update_server_info;
+static int auto_gc = 1;
static const char *head_name;
static char *capabilities_to_send;
static const char *head_name;
static char *capabilities_to_send;
return 0;
}
return 0;
}
+ if (strcmp(var, "receive.updateserverinfo") == 0) {
+ auto_update_server_info = git_config_bool(var, value);
+ return 0;
+ }
+
+ if (strcmp(var, "receive.autogc") == 0) {
+ auto_gc = git_config_bool(var, value);
+ return 0;
+ }
+
return git_default_config(var, value, cb);
}
return git_default_config(var, value, cb);
}
break;
free_commit_list(bases);
if (!ent) {
break;
free_commit_list(bases);
if (!ent) {
- error("denying non-fast forward %s"
+ error("denying non-fast-forward %s"
" (you should pull first)", name);
" (you should pull first)", name);
- return "non-fast forward";
+ return "non-fast-forward";
}
}
if (run_update_hook(cmd)) {
}
}
if (run_update_hook(cmd)) {
report(unpack_status);
run_receive_hook(post_receive_hook);
run_update_post_hook(commands);
report(unpack_status);
run_receive_hook(post_receive_hook);
run_update_post_hook(commands);
+ if (auto_gc) {
+ const char *argv_gc_auto[] = {
+ "gc", "--auto", "--quiet", NULL,
+ };
+ run_command_v_opt(argv_gc_auto, RUN_GIT_CMD);
+ }
+ if (auto_update_server_info)
+ update_server_info(0);
}
return 0;
}
}
return 0;
}