diff options
-rw-r--r-- | builtin/fetch-pack.c | 6 | ||||
-rwxr-xr-x | t/t5700-clone-reference.sh | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/builtin/fetch-pack.c b/builtin/fetch-pack.c index dbe9acbc39..0e8560f60f 100644 --- a/builtin/fetch-pack.c +++ b/builtin/fetch-pack.c @@ -581,6 +581,11 @@ static void filter_refs(struct ref **refs, int nr_match, char **match) *refs = newlist; } +static void mark_alternate_complete(const struct ref *ref, void *unused) +{ + mark_complete(NULL, ref->old_sha1, 0, NULL); +} + static int everything_local(struct ref **refs, int nr_match, char **match) { struct ref *ref; @@ -609,6 +614,7 @@ static int everything_local(struct ref **refs, int nr_match, char **match) if (!args.depth) { for_each_ref(mark_complete, NULL); + for_each_alternate_ref(mark_alternate_complete, NULL); if (cutoff) mark_recent_complete_commits(cutoff); } diff --git a/t/t5700-clone-reference.sh b/t/t5700-clone-reference.sh index bd7a1d7dbb..bbc4691bd7 100755 --- a/t/t5700-clone-reference.sh +++ b/t/t5700-clone-reference.sh @@ -167,7 +167,7 @@ test_expect_success 'prepare branched repository' ' rm -f "$U.K" -test_expect_failure 'fetch with incomplete alternates' ' +test_expect_success 'fetch with incomplete alternates' ' git init K && echo "$base_dir/A/.git/objects" >K/.git/objects/info/alternates && ( |