summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xgit-branch.sh10
-rwxr-xr-xt/t3210-pack-refs.sh27
2 files changed, 27 insertions, 10 deletions
diff --git a/git-branch.sh b/git-branch.sh
index bf84b30..4379a07 100755
--- a/git-branch.sh
+++ b/git-branch.sh
@@ -111,16 +111,6 @@ rev=$(git-rev-parse --verify "$head") || exit
git-check-ref-format "heads/$branchname" ||
die "we do not like '$branchname' as a branch name."
-if [ -d "$GIT_DIR/refs/heads/$branchname" ]
-then
- for refdir in `cd "$GIT_DIR" && \
- find "refs/heads/$branchname" -type d | sort -r`
- do
- rmdir "$GIT_DIR/$refdir" || \
- die "Could not delete '$refdir', there may still be a ref there."
- done
-fi
-
prev=''
if git-show-ref --verify --quiet -- "refs/heads/$branchname"
then
diff --git a/t/t3210-pack-refs.sh b/t/t3210-pack-refs.sh
index 193fe1f..f31e79c 100755
--- a/t/t3210-pack-refs.sh
+++ b/t/t3210-pack-refs.sh
@@ -67,4 +67,31 @@ test_expect_success \
git-pack-refs &&
git-branch -d g'
+test_expect_failure \
+ 'git branch i/j/k should barf if branch i exists' \
+ 'git-branch i &&
+ git-pack-refs --prune &&
+ git-branch i/j/k'
+
+test_expect_success \
+ 'test git branch k after branch k/l/m and k/lm have been deleted' \
+ 'git-branch k/l &&
+ git-branch k/lm &&
+ git-branch -d k/l &&
+ git-branch k/l/m &&
+ git-branch -d k/l/m &&
+ git-branch -d k/lm &&
+ git-branch k'
+
+test_expect_success \
+ 'test git branch n after some branch deletion and pruning' \
+ 'git-branch n/o &&
+ git-branch n/op &&
+ git-branch -d n/o &&
+ git-branch n/o/p &&
+ git-branch -d n/op &&
+ git-pack-refs --prune &&
+ git-branch -d n/o/p &&
+ git-branch n'
+
test_done