diff options
-rw-r--r-- | builtin/fetch.c | 5 | ||||
-rw-r--r-- | fetch-pack.c | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/builtin/fetch.c b/builtin/fetch.c index 4b5a89839b..1ddbf0d0b1 100644 --- a/builtin/fetch.c +++ b/builtin/fetch.c @@ -959,6 +959,9 @@ int cmd_fetch(int argc, const char **argv, const char *prefix) struct string_list list = STRING_LIST_INIT_NODUP; struct remote *remote; int result = 0; + static const char *argv_gc_auto[] = { + "gc", "--auto", NULL, + }; packet_trace_identity("fetch"); @@ -1026,5 +1029,7 @@ int cmd_fetch(int argc, const char **argv, const char *prefix) list.strdup_strings = 1; string_list_clear(&list, 0); + run_command_v_opt(argv_gc_auto, RUN_GIT_CMD); + return result; } diff --git a/fetch-pack.c b/fetch-pack.c index 099ff4ddff..b4383c6dca 100644 --- a/fetch-pack.c +++ b/fetch-pack.c @@ -594,6 +594,9 @@ static int everything_local(struct fetch_pack_args *args, for (ref = *refs; ref; ref = ref->next) { struct object *o; + if (!has_sha1_file(ref->old_sha1)) + continue; + o = parse_object(ref->old_sha1); if (!o) continue; |