X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=topgit.git;a=blobdiff_plain;f=tg-delete.sh;h=e1eea170b36745cf7e3b7acdcdfe3fc704b8f0bc;hp=7f7ede7068d71bd5f50e10686ea87398f26f1b41;hb=120b1ea119b87b3ea292f0c2e2416540e790fcd1;hpb=41ad0fd31729461c5c9c3926c28011770ccfc9e7 diff --git a/tg-delete.sh b/tg-delete.sh index 7f7ede7..e1eea17 100644 --- a/tg-delete.sh +++ b/tg-delete.sh @@ -3,7 +3,7 @@ # (c) Petr Baudis 2008 # GPLv2 -force= # Whether to delete non-empty branch +force= # Whether to delete non-empty branch, or branch where only the base is left. name= @@ -28,19 +28,22 @@ done [ -n "$name" ] || die "no branch name specified" branchrev="$(git rev-parse --verify "$name" 2>/dev/null)" || - die "invalid branch name: $name" + if [ -n "$force" ]; then + info "invalid branch name: $name; assuming it has been deleted already" + else + die "invalid branch name: $name" + fi baserev="$(git rev-parse --verify "refs/top-bases/$name" 2>/dev/null)" || die "not a TopGit topic branch: $name" ! git symbolic-ref HEAD >/dev/null || [ "$(git symbolic-ref HEAD)" != "refs/heads/$name" ] || die "cannot delete your current branch" -nonempty= -branch_empty "$name" || nonempty=1 - -[ -z "$nonempty" ] || [ -n "$force" ] || die "branch is non-empty: $name" +[ -z "$force" ] && { branch_empty "$name" || die "branch is non-empty: $name"; } ## Wipe out git update-ref -d "refs/top-bases/$name" "$baserev" -git update-ref -d "refs/heads/$name" "$branchrev" +[ -z "$branchrev" ] || git update-ref -d "refs/heads/$name" "$branchrev" + +# vim:noet