Re: [PATCH 2/2 v3] checkout: add a test for creating a new branch with regexp as a starting point
- From
Dmitry V. Levin <ldv@altlinux.org>
- Date
- Aug 5, 2010, 21:24 UTC
- Message-ID
- <20100805212444.GB12207@wo.int.altlinux.org>
- In-Reply-To
- <AANLkTi=+60yK8A-bYT6ySFTxXxmCD9nD_LW1WX2GgDbm@mail.gmail.com>
Reported-by: Ivan Zakharyaschev <imz@altlinux.org> Signed-off-by: Dmitry V. Levin <ldv@altlinux.org> Acked-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> ---
The only difference between v2 and v3 editions of this patch is that test_expect_failure has been replaced with test_expect_success, because the fix (jc/sha1-name-find-fix) is already available.
t/t2018-checkout-branch.sh | 25 +++++++++++++++++++++---- 1 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/t/t2018-checkout-branch.sh b/t/t2018-checkout-branch.sh index 1caffea..13f7194 100755 --- a/t/t2018-checkout-branch.sh +++ b/t/t2018-checkout-branch.sh @@ -4,12 +4,13 @@ test_description='checkout ' . ./test-lib.sh -# Arguments: <branch> <sha> [<checkout options>] +# Arguments: <branch> <start_point> [<checkout options>] # # Runs "git checkout" to switch to <branch>, testing that # # 1) we are on the specified branch, <branch>; -# 2) HEAD is <sha>; if <sha> is not specified, the old HEAD is used. +# 2) HEAD points to the same commit as <start_point> does; +# if <start_point> is not specified, the old HEAD is used. # # If <checkout options> is not specified, "git checkout" is run with -b. do_checkout() { @@ -17,7 +18,8 @@ do_checkout() { exp_ref="refs/heads/$exp_branch" && # if <sha> is not specified, use HEAD. - exp_sha=${2:-$(git rev-parse --verify HEAD)} && + start_point=${2:-HEAD} + exp_sha=$(git rev-parse --verify $start_point) && # default options for git checkout: -b if [ -z "$3" ]; then @@ -26,7 +28,7 @@ do_checkout() { opts="$3" fi - git checkout $opts $exp_branch $exp_sha && + git checkout $opts $exp_branch $start_point && test $exp_ref = $(git rev-parse --symbolic-full-name HEAD) && test $exp_sha = $(git rev-parse --verify HEAD) @@ -118,7 +120,22 @@ test_expect_success 'checkout -b to an existing branch fails' ' test_must_fail do_checkout branch2 $HEAD2 ' +test_expect_success 'checkout -b new_branch :/regexp' ' + # clean up from previous test + git reset --hard && + + do_checkout old_regexp_branch branch1 && + # The first commit in this test should not be referenced by + # other branches or tags. + test_commit first a a "" && + test_commit second && + + do_checkout new_regexp_branch :/first +' + test_expect_success 'checkout -B to an existing branch resets branch to HEAD' ' + # clean up from previous test + git reset --hard && git checkout branch1 && do_checkout branch2 "" -B
-- ldv