summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2019-02-05 22:26:17 (GMT)
committerJunio C Hamano <gitster@pobox.com>2019-02-05 22:26:17 (GMT)
commit5ad3550f026d7ea1b96e699fdf072b642e8a4b8b (patch)
tree07256ef054f4251641cc316637662b4295932ae3 /t
parent264def5ab7bc1d4116b1f9f5ba1405f86a32159d (diff)
parent8424bfd45b291a56594f0289dc6af22e900a1d88 (diff)
downloadgit-5ad3550f026d7ea1b96e699fdf072b642e8a4b8b.zip
git-5ad3550f026d7ea1b96e699fdf072b642e8a4b8b.tar.gz
git-5ad3550f026d7ea1b96e699fdf072b642e8a4b8b.tar.bz2
Merge branch 'bp/checkout-new-branch-optim'
"git checkout -b <new> [HEAD]" to create a new branch from the current commit and check it out ought to be a no-op in the index and the working tree in normal cases, but there are corner cases that do require updates to the index and the working tree. Running it immediately after "git clone --no-checkout" is one of these cases that an earlier optimization kicked in incorrectly, which has been fixed. * bp/checkout-new-branch-optim: checkout: fix regression in checkout -b on intitial checkout checkout: add test demonstrating regression with checkout -b on initial commit
Diffstat (limited to 't')
-rwxr-xr-xt/t2018-checkout-branch.sh9
1 files changed, 9 insertions, 0 deletions
diff --git a/t/t2018-checkout-branch.sh b/t/t2018-checkout-branch.sh
index 2131fb2..c5014ad 100755
--- a/t/t2018-checkout-branch.sh
+++ b/t/t2018-checkout-branch.sh
@@ -198,4 +198,13 @@ test_expect_success 'checkout -B to the current branch works' '
test_dirty_mergeable
'
+test_expect_success 'checkout -b after clone --no-checkout does a checkout of HEAD' '
+ git init src &&
+ test_commit -C src a &&
+ rev="$(git -C src rev-parse HEAD)" &&
+ git clone --no-checkout src dest &&
+ git -C dest checkout "$rev" -b branch &&
+ test_path_is_file dest/a.t
+'
+
test_done