diff options
author | Stefan Beller <sbeller@google.com> | 2016-03-15 14:25:50 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-03-16 09:41:07 -0700 |
commit | 8fbb03a180c7113d311988693e96fe016ff59c6d (patch) | |
tree | fdd8e3a0524218aafeaa012d78d33f649a126bf7 /t/t5609-clone-branch.sh | |
parent | 594730e980521310d88006d91f3f14ef5eff1e2b (diff) | |
download | git-8fbb03a180c7113d311988693e96fe016ff59c6d.tar.gz |
clone tests: rename t57* => t56*sb/clone-t57-t56
When trying to find a good spot for testing clone with submodules, I
got confused where to add a new test file. There are both tests in t560*
as well as t57* both testing the clone command. t/README claims the
second digit is to indicate the command, which is inconsistent to the
current naming structure.
Rename all t57* tests to be in t56* to follow the pattern of the digits
as laid out in t/README.
It would have been less work to rename t56* => t57* because there are less
files, but the tests in t56* look more basic and I assumed the higher the
last digits the more complicated niche details are tested, so with the patch
now it looks more in order to me.
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t5609-clone-branch.sh')
-rwxr-xr-x | t/t5609-clone-branch.sh | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/t/t5609-clone-branch.sh b/t/t5609-clone-branch.sh new file mode 100755 index 0000000000..6e7a7be052 --- /dev/null +++ b/t/t5609-clone-branch.sh @@ -0,0 +1,70 @@ +#!/bin/sh + +test_description='clone --branch option' +. ./test-lib.sh + +check_HEAD() { + echo refs/heads/"$1" >expect && + git symbolic-ref HEAD >actual && + test_cmp expect actual +} + +check_file() { + echo "$1" >expect && + test_cmp expect file +} + +test_expect_success 'setup' ' + mkdir parent && + (cd parent && git init && + echo one >file && git add file && git commit -m one && + git checkout -b two && + echo two >file && git add file && git commit -m two && + git checkout master) && + mkdir empty && + (cd empty && git init) +' + +test_expect_success 'vanilla clone chooses HEAD' ' + git clone parent clone && + (cd clone && + check_HEAD master && + check_file one + ) +' + +test_expect_success 'clone -b chooses specified branch' ' + git clone -b two parent clone-two && + (cd clone-two && + check_HEAD two && + check_file two + ) +' + +test_expect_success 'clone -b sets up tracking' ' + (cd clone-two && + echo origin >expect && + git config branch.two.remote >actual && + echo refs/heads/two >>expect && + git config branch.two.merge >>actual && + test_cmp expect actual + ) +' + +test_expect_success 'clone -b does not munge remotes/origin/HEAD' ' + (cd clone-two && + echo refs/remotes/origin/master >expect && + git symbolic-ref refs/remotes/origin/HEAD >actual && + test_cmp expect actual + ) +' + +test_expect_success 'clone -b with bogus branch' ' + test_must_fail git clone -b bogus parent clone-bogus +' + +test_expect_success 'clone -b not allowed with empty repos' ' + test_must_fail git clone -b branch empty clone-branch-empty +' + +test_done |