@@ -48,6 +48,7 @@ static int prune_tags = -1; /* unspecified */
4848
4949static int all , append , dry_run , force , keep , multiple , update_head_ok , verbosity , deepen_relative ;
5050static int progress = -1 ;
51+ static int enable_auto_gc = 1 ;
5152static int tags = TAGS_DEFAULT , unshallow , update_shallow , deepen ;
5253static int max_children = 1 ;
5354static enum transport_family family ;
@@ -169,6 +170,8 @@ static struct option builtin_fetch_options[] = {
169170 OPT_STRING_LIST (0 , "negotiation-tip" , & negotiation_tip , N_ ("revision" ),
170171 N_ ("report that we have only objects reachable from this object" )),
171172 OPT_PARSE_LIST_OBJECTS_FILTER (& filter_options ),
173+ OPT_BOOL (0 , "auto-gc" , & enable_auto_gc ,
174+ N_ ("run 'gc --auto' after fetching" )),
172175 OPT_END ()
173176};
174177
@@ -1432,7 +1435,7 @@ static int fetch_multiple(struct string_list *list)
14321435 return errcode ;
14331436 }
14341437
1435- argv_array_pushl (& argv , "fetch" , "--append" , NULL );
1438+ argv_array_pushl (& argv , "fetch" , "--append" , "--no-auto-gc" , NULL );
14361439 add_options_to_argv (& argv );
14371440
14381441 for (i = 0 ; i < list -> nr ; i ++ ) {
@@ -1682,11 +1685,13 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
16821685
16831686 close_object_store (the_repository -> objects );
16841687
1685- argv_array_pushl (& argv_gc_auto , "gc" , "--auto" , NULL );
1686- if (verbosity < 0 )
1687- argv_array_push (& argv_gc_auto , "--quiet" );
1688- run_command_v_opt (argv_gc_auto .argv , RUN_GIT_CMD );
1689- argv_array_clear (& argv_gc_auto );
1688+ if (enable_auto_gc ) {
1689+ argv_array_pushl (& argv_gc_auto , "gc" , "--auto" , NULL );
1690+ if (verbosity < 0 )
1691+ argv_array_push (& argv_gc_auto , "--quiet" );
1692+ run_command_v_opt (argv_gc_auto .argv , RUN_GIT_CMD );
1693+ argv_array_clear (& argv_gc_auto );
1694+ }
16901695
16911696 return result ;
16921697}
0 commit comments