aboutsummaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2010-01-22 16:08:19 -0800
committerJunio C Hamano <gitster@pobox.com>2010-01-22 16:08:19 -0800
commit630724ca79b1a7893a8d9c04367eae857ff1a7b0 (patch)
treeb1eb1c999bf904e164a0f48e1621ee74c981514d /t
parent78bc024ab075f4d5d9cc0b6540b538f3d93d04cb (diff)
parent99c419c91554e9f60940228006b7d39d42704da7 (diff)
downloadgit-630724ca79b1a7893a8d9c04367eae857ff1a7b0.tar.gz
git-630724ca79b1a7893a8d9c04367eae857ff1a7b0.tar.xz
Merge branch 'jc/branch-d'
* jc/branch-d: branch -d: base the "already-merged" safety on the branch it merges with
Diffstat (limited to 't')
-rwxr-xr-xt/t3200-branch.sh26
1 files changed, 26 insertions, 0 deletions
diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh
index d59a9b4ae..e0b760513 100755
--- a/t/t3200-branch.sh
+++ b/t/t3200-branch.sh
@@ -468,4 +468,30 @@ test_expect_success 'detect misconfigured autosetuprebase (no value)' '
git config --unset branch.autosetuprebase
'
+test_expect_success 'attempt to delete a branch without base and unmerged to HEAD' '
+ git checkout my9 &&
+ git config --unset branch.my8.merge &&
+ test_must_fail git branch -d my8
+'
+
+test_expect_success 'attempt to delete a branch merged to its base' '
+ # we are on my9 which is the initial commit; traditionally
+ # we would not have allowed deleting my8 that is not merged
+ # to my9, but it is set to track master that already has my8
+ git config branch.my8.merge refs/heads/master &&
+ git branch -d my8
+'
+
+test_expect_success 'attempt to delete a branch merged to its base' '
+ git checkout master &&
+ echo Third >>A &&
+ git commit -m "Third commit" A &&
+ git branch -t my10 my9 &&
+ git branch -f my10 HEAD^ &&
+ # we are on master which is at the third commit, and my10
+ # is behind us, so traditionally we would have allowed deleting
+ # it; but my10 is set to track my9 that is further behind.
+ test_must_fail git branch -d my10
+'
+
test_done