path: root/t/
diff options
authorKazuki Yamaguchi <>2016-03-29 09:38:39 (GMT)
committerJunio C Hamano <>2016-03-29 20:05:53 (GMT)
commitf292244c04d8109ee32a45016ce08984fbd925f0 (patch)
tree2c492ec3099cd457f385cde6c1fc833f5bb8157d /t/
parenta0feb1b1870fbb74f65d6a8951e4b2e2a2347ecf (diff)
branch -d: refuse deleting a branch which is currently checked out
When a branch is checked out by current working tree, deleting the branch is forbidden. However when the branch is checked out only by other working trees, deleting incorrectly succeeds. Use find_shared_symref() to check if the branch is in use, not just comparing with the current working tree's HEAD. Helped-by: Eric Sunshine <> Signed-off-by: Kazuki Yamaguchi <> Reviewed-by: Eric Sunshine <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 't/')
1 files changed, 6 insertions, 0 deletions
diff --git a/t/ b/t/
index a897248..508007f 100755
--- a/t/
+++ b/t/
@@ -403,6 +403,12 @@ test_expect_success 'test deleting branch without config' '
test_i18ncmp expect actual
+test_expect_success 'deleting currently checked out branch fails' '
+ git worktree add -b my7 my7 &&
+ test_must_fail git -C my7 branch -d my7 &&
+ test_must_fail git branch -d my7
test_expect_success 'test --track without .fetch entries' '
git branch --track my8 &&
test "$(git config branch.my8.remote)" &&