]> git.wh0rd.org - home.git/blame - .bin/git-rb-all
git-rb-all: continue when one branch fails
[home.git] / .bin / git-rb-all
CommitLineData
ba2e5f1f
MF
1#!/bin/bash
2# Helper to rewrite all local branches.
3
4rb_one() {
5 local b=$1
6
fc774894
MF
7 printf "### ${b}"
8 if ! git config --local "branch.${b}.merge" >/dev/null; then
9 echo " -> skipping due to missing merge branch"
10 else
11 echo
5730a476 12 git checkout -q "${b}" || return
fc774894
MF
13 if ! git rebase ; then
14 git rebase --abort
15 fi
ba2e5f1f
MF
16 fi
17}
18
19usage() {
20 cat <<EOF
21Usage: rb-all
22EOF
23 exit 1
24}
25
26main() {
27 if [[ $# -ne 0 ]] ; then
28 usage
29 fi
30
31 local orig b branches
32 orig=$(git rev-parse --abbrev-ref HEAD) || return
33
86bc09eb 34 branches=( $(git ls-remote --heads . | sed 's:.*refs/heads/::') )
ba2e5f1f
MF
35 for b in "${branches[@]}" ; do
36 rb_one "${b}"
37 done
38
39 git checkout -q "${orig}"
40}
41main "$@"