summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2012-07-05 06:41:41 (GMT)
committerJunio C Hamano <gitster@pobox.com>2012-07-05 06:41:41 (GMT)
commit57c054c5d0e72d5665322a4bebb7f380390edde5 (patch)
treea6dc5fc94f7a2c8c05a5d215ad7a73d2a1b7c858
parent60ad08bfdfe393fd86391e2f9e60e8ffccc78e5b (diff)
parent0ec4b1650ccac48513f8cfb00d0778ba1d3e8fca (diff)
downloadgit-57c054c5d0e72d5665322a4bebb7f380390edde5.zip
git-57c054c5d0e72d5665322a4bebb7f380390edde5.tar.gz
git-57c054c5d0e72d5665322a4bebb7f380390edde5.tar.bz2
Merge branch 'nd/clone-single-fix'
"git clone --single-branch" to clone a single branch did not limit the cloning to the specified branch. * nd/clone-single-fix: clone: fix ref selection in --single-branch --branch=xxx
-rw-r--r--builtin/clone.c7
-rwxr-xr-xt/t5500-fetch-pack.sh7
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