[PATCH] clone: fix ref selection in --single-branch --branch=xxx
From: Nguyễn Thái Ngọc Duy <hidden>
Date: 2016-06-15 22:54:09
Subsystem:
the rest · Maintainer:
Linus Torvalds
- do not fetch HEAD - do not also fetch refs following "xxx" Signed-off-by: Nguyễn Thái Ngọc Duy <redacted> --- On Tue, Jun 12, 2012 at 4:14 AM, Jeff King [off-list ref] wrote: > [1] It looks like "--single-branch" does not actually work, and still > fetches master. I think this is a bug in the implementation of > single-branch (it looks like it fetches HEAD unconditionally). > +cc Duy. Yep, my bad. builtin/clone.c | 7 +++++-- t/t5500-fetch-pack.sh | 7 ++++++- 2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/builtin/clone.c b/builtin/clone.c
index 7f3b982..d3b7fdc 100644
--- a/builtin/clone.c
+++ b/builtin/clone.c@@ -433,8 +433,11 @@ static struct ref *wanted_peer_refs(const struct ref *refs, if (!option_branch) remote_head = guess_remote_head(head, refs, 0); - else - remote_head = find_remote_branch(refs, option_branch); + else { + local_refs = NULL; + tail = &local_refs; + remote_head = copy_ref(find_remote_branch(refs, option_branch)); + } if (!remote_head && option_branch) warning(_("Could not find remote branch %s to clone."),
diff --git a/t/t5500-fetch-pack.sh b/t/t5500-fetch-pack.sh
index 1d1ca98..e80a2af 100755
--- a/t/t5500-fetch-pack.sh
+++ b/t/t5500-fetch-pack.sh@@ -125,6 +125,11 @@ test_expect_success 'single branch object count' ' test_cmp expected count.singlebranch ' +test_expect_success 'single given branch clone' ' + git clone --single-branch --branch A "file://$(pwd)/." branch-a && + test_must_fail git --git-dir=branch-a/.git rev-parse origin/B +' + test_expect_success 'clone shallow' ' git clone --no-single-branch --depth 2 "file://$(pwd)/." shallow '
@@ -276,7 +281,7 @@ test_expect_success 'clone shallow with --branch' ' ' test_expect_success 'clone shallow object count' ' - echo "in-pack: 12" > count3.expected && + echo "in-pack: 6" > count3.expected && GIT_DIR=shallow3/.git git count-objects -v | grep "^in-pack" > count3.actual && test_cmp count3.expected count3.actual
--
1.7.11.rc1.185.g281ad67