+function merge_all_branches () {
+ NAME=$1
+ REMOTE=$2
+ REPO_DIR=$3
+
+ pushd $REPO_DIR
+ BRANCHES=$(git branch -r | grep $REMOTE | grep -v "\->" | sed "s/.*\///g")
+ popd > /dev/null
+
+ run "git checkout master" ${REPO_DIR}
+ run "git merge --ff $REMOTE/master" ${REPO_DIR}
+ for BRANCH in $BRANCHES ; do
+ run "git branch $BRANCH" ${REPO_DIR}
+ run "git checkout $BRANCH" ${REPO_DIR}
+ run "git merge --ff $REMOTE/$BRANCH" ${REPO_DIR}
+ done
+}
+
+function push_all_branches () {
+ NAME=$1
+ REMOTE=$2
+ REPO_DIR=$3
+
+ pushd $REPO_DIR
+ BRANCHES=$(git branch -r | grep $REMOTE | grep -v "\->" | sed "s/.*\///g")
+ popd > /dev/null
+
+ run "git push $REMOTE master:master" ${REPO_DIR}
+ for BRANCH in $BRANCHES ; do
+ run "git push $REMOTE $BRANCH:$BRANCH" ${REPO_DIR}
+ done
+}
+