When deleting a branch check if git has config.

Don't assume that the remote is always origin and that the
remote branch name is the same as the local one
This commit is contained in:
Jon Ander Peñalba 2014-12-17 11:33:09 +01:00
parent 1b2b61169a
commit bfd38ca891

View file

@ -3,18 +3,14 @@
# Assert there is at least one branch provided
test -z $1 && echo "branch required." 1>&2 && exit 1
# Concatenate all branch references
local_branches=""
origin_branches=""
origin_refs=""
for branch in "$@"
do
local_branches=$local_branches" $branch"
origin_branches=$origin_branches" origin/$branch"
origin_refs=$origin_refs" :refs/heads/$branch"
done
remote=$(git config branch.$branch.remote)
test -z $remote && remote="origin"
ref=$(git config branch.$branch.merge)
test -z $ref && ref="refs/heads/$branch"
# Delete all branches
git branch -D $local_branches
git branch -d -r $origin_branches
git push origin $origin_refs
git branch -D $branch
git branch -d -r $remote/$branch
git push $remote :$ref
done