Remove empty ref directories that prevent creating a ref.
This patch also adds test cases from Linus and Junio. Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
4dafd7d244
commit
9c7b0b3fc4
@ -112,6 +112,16 @@ 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
|
||||
|
||||
if [ -e "$GIT_DIR/refs/heads/$branchname" ]
|
||||
then
|
||||
if test '' = "$force"
|
||||
|
@ -61,4 +61,16 @@ test_expect_success \
|
||||
test -f .git/logs/refs/heads/g/h/i &&
|
||||
diff expect .git/logs/refs/heads/g/h/i'
|
||||
|
||||
test_expect_success \
|
||||
'git branch j/k should work after branch j has been deleted' \
|
||||
'git-branch j &&
|
||||
git-branch -d j &&
|
||||
git-branch j/k'
|
||||
|
||||
test_expect_success \
|
||||
'git branch l should work after branch l/m has been deleted' \
|
||||
'git-branch l/m &&
|
||||
git-branch -d l/m &&
|
||||
git-branch l'
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user