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>maint
parent
4dafd7d244
commit
9c7b0b3fc4
|
@ -112,6 +112,16 @@ rev=$(git-rev-parse --verify "$head") || exit
|
||||||
git-check-ref-format "heads/$branchname" ||
|
git-check-ref-format "heads/$branchname" ||
|
||||||
die "we do not like '$branchname' as a branch name."
|
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" ]
|
if [ -e "$GIT_DIR/refs/heads/$branchname" ]
|
||||||
then
|
then
|
||||||
if test '' = "$force"
|
if test '' = "$force"
|
||||||
|
|
|
@ -61,4 +61,16 @@ test_expect_success \
|
||||||
test -f .git/logs/refs/heads/g/h/i &&
|
test -f .git/logs/refs/heads/g/h/i &&
|
||||||
diff expect .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
|
test_done
|
||||||
|
|
Loading…
Reference in New Issue