Invoke "gc --auto" from git commit
PATCH 1/1 Invoke "gc --auto" from git commit
This feature was lost during the port of git commit to C.
--- builtin-commit.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
builtin-commit.c +2 -0
@@ -947,6 +947,7 @@ int cmd_commit(int argc, const char **argv, const char *prefix)struct commit_list *parents =NULL , **pptr = &parents;struct stat statbuf;int allow_fast_forward =1 ; +const char *argv_gc_auto[] = {"gc" ,"--auto" ,NULL };git_config (git_commit_config,NULL );
@@ -1068,6 +1069,7 @@ int cmd_commit(int argc, const char **argv, const char *prefix) "not exceeded, and then \"git reset HEAD\" to recover.");rerere (); +run_command_v_opt (argv_gc_auto,RUN_GIT_CMD );run_hook (get_index_file (),"post-commit" ,NULL );if (!quiet)print_summary (prefix, commit_sha1);
Signature · 1 line
1.6.0.4
Hi,
Quoted 1 line · Jean-Luc Herren
This feature was lost during the port of git commit to C.
See http://article.gmane.org/gmane.comp.version-control.git/82125
Ciao,
Dscho
Quoted 4 lines · Johannes Schindelin
Quoted 1 line · Jean-Luc Herren
This feature was lost during the port of git commit to C.
See http://article.gmane.org/gmane.comp.version-control.git/82125
Oh, I missed that. But then the only commands ever invoking git gc --auto would be git rebase -i, git merge, git svn and git am. I don't know if some people have repositories where they never use any of those, but I certainly have repositories where I only ever use git rebase -i and never any of the other. 'git commit' is something everyone is bound to use and thus it would be the best place for running 'git gc --auto'.
As for the performance impact, on my machine 'git gc --auto' runs 500 times per second in a loop on the git repository (it won't call the hook unless repacking is necessary). I suppose any script calling git commit in a loop would do substantially more work than git gc --auto itself. And if that bit of performance really matters, it could be invoked by git commit only if (rand() % 20 == 0).
My two cents anyway.
jlh
Hi,
Quoted 3 lines · Jean-Luc Herren
As for the performance impact, on my machine 'git gc --auto' runs 500 times per second in a loop on the git repository (it won't call the hook unless repacking is necessary).
Ummm.
How many people do you think share your luck? git.git is _small_. Your machine is _fast_. It is the typical mistake in IT, not thinking about real-world cases...
Ciao,
Dscho