On Tue, 20 Oct 2009, Junio C Hamano wrote: > Introduce two new configuration variables, receive.autogc (defaults to > true) and receive.updateserverinfo (defaults to false). When these are > set, receive-pack runs "gc --auto" and "update-server-info" respectively > after it finishes receiving data from "git push" and updating refs. > > Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> Acked-by: Nicolas Pitre <nico@xxxxxxxxxxx> > --- > > Nicolas Pitre <nico@xxxxxxxxxxx> writes: > > > On Tue, 20 Oct 2009, Junio C Hamano wrote: > > > >> Nicolas Pitre <nico@xxxxxxxxxxx> writes: > >> > >> > Still... Hopefully this is going to become redundant information in the > >> > future with the eventual deployment of smart protocol over HTTP. So I > >> > think that as a config option being off by default this is a good > >> > compromize. Site administrators can turn it on by default in > >> > /etc/gitconfig. > >> > >> Ok, something like this? > > > > Looks fine to me, except... > > Everything you said sounded sensible. Thanks. > > Documentation/config.txt | 9 +++++++++ > builtin-receive-pack.c | 18 ++++++++++++++++++ > 2 files changed, 27 insertions(+), 0 deletions(-) > > diff --git a/Documentation/config.txt b/Documentation/config.txt > index cd17814..ba6ed10 100644 > --- a/Documentation/config.txt > +++ b/Documentation/config.txt > @@ -1320,6 +1320,11 @@ rebase.stat:: > Whether to show a diffstat of what changed upstream since the last > rebase. False by default. > > +receive.autogc:: > + By default, git-receive-pack will run "git-gc --auto" after > + receiving data from git-push and updating refs. You can stop > + it by setting this variable to false. > + > receive.fsckObjects:: > If it is set to true, git-receive-pack will check all received > objects. It will abort in the case of a malformed object or a > @@ -1355,6 +1360,10 @@ receive.denyNonFastForwards:: > even if that push is forced. This configuration variable is > set when initializing a shared repository. > > +receive.updateserverinfo:: > + If set to true, git-receive-pack will run git-update-server-info > + after receiving data from git-push and updating refs. > + > remote.<name>.url:: > The URL of a remote repository. See linkgit:git-fetch[1] or > linkgit:git-push[1]. > diff --git a/builtin-receive-pack.c b/builtin-receive-pack.c > index b771fe9..92173ac 100644 > --- a/builtin-receive-pack.c > +++ b/builtin-receive-pack.c > @@ -28,6 +28,8 @@ static int transfer_unpack_limit = -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; > > @@ -88,6 +90,16 @@ static int receive_pack_config(const char *var, const char *value, void *cb) > 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); > } > > @@ -672,6 +684,12 @@ int cmd_receive_pack(int argc, const char **argv, const char *prefix) > report(unpack_status); > run_receive_hook(post_receive_hook); > run_update_post_hook(commands); > + if (auto_gc) { > + const char *argv_gc_auto[] = { "gc", "--auto", NULL }; > + run_command_v_opt(argv_gc_auto, RUN_GIT_CMD); > + } > + if (auto_update_server_info) > + update_server_info(0); > } > return 0; > } > -- > 1.6.5.1.107.gba912 > -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html