diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2016-05-12 22:31:26 +0900 |
---|---|---|
committer | Kazuki Yamaguchi <k@rhe.jp> | 2016-05-12 22:40:16 +0900 |
commit | b7f6381cea57a344af5e0144565d85921eb10a13 (patch) | |
tree | fe7ed74e0680c8533d9420f33b6809a2c03be619 | |
parent | 2b7c721499784b93df3911477394c6d7461f4f81 (diff) | |
download | ruby-b7f6381cea57a344af5e0144565d85921eb10a13.tar.gz |
add nya
-rwxr-xr-x | nya | 44 |
1 files changed, 44 insertions, 0 deletions
@@ -0,0 +1,44 @@ +#!/bin/sh + +list_branches() { + git for-each-ref --sort=-committerdate --format=' + d=%(committerdate:short) + r=%(refname) + echo $d ${r#refs/heads} + ' refs/heads +} + +git update-index --refresh || exit 1 + +case "$(git diff-index --name-status HEAD)" in +'') ;; +*) + echo "there are local modifications" + exit 1 +esac + +# reset first +git fetch upstream --progress +git reset --hard upstream/trunk + +# then merge branches +git fetch origin --progress +while list_branches && echo -n "> " && read line; do + if ORIGIN_HEAD=$(git rev-parse "origin/$line"); then + LOCAL_HEAD=$(git rev-parse "$line") + if [ "x$LOCAL_HEAD" != "x$ORIGIN_HEAD" ]; then + echo "origin and local differs?" + exit 1 + fi + fi + + echo "merging branch $line" + while :; do + if git merge --no-edit --no-ff "$line"; then + break + fi + echo -n "merge failed; press a key to retry" + read + done +done + |