diff options
author | Frediano Ziglio <freddy77@gmail.com> | 2020-06-06 09:03:11 +0100 |
---|---|---|
committer | Frediano Ziglio <freddy77@gmail.com> | 2024-06-12 21:34:58 +0100 |
commit | 7717b1b6ef3f3e8f1f1043b46ffe59e6805e6d91 (patch) | |
tree | 86ee4f412efa218b8ede15d6af14e9c5071b5851 | |
parent | 23429867e1449cb426563b79612517efa09aa49c (diff) |
EEE save script for MRscpp_other
-rwxr-xr-x | rebuild_mrs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/rebuild_mrs b/rebuild_mrs new file mode 100755 index 00000000..3a87a35b --- /dev/null +++ b/rebuild_mrs @@ -0,0 +1,36 @@ +#!/bin/bash + +set -e + +root=origin/master +head=cpp_other +git checkout "$head" +branches=() +prev= + +get_id() { + git rev-parse --revs-only "refs/$1" -- +} + +add_mr() { + local name="$1" commit="$2" + git branch -D "$name" || true + git checkout -b "$name" "$head$commit" + if [ "x$prev" = "x" ]; then + git rebase "$root" "$name" + else + git rebase --onto "$root" "$head$prev" "$name" + fi + if ! get_id "remotes/gitlab/$name" &> /dev/null || test $(git diff "gitlab/$name..$name" | wc -l) != 0; then + git push -f gitlab "$name" + fi + branches+=($name) + prev="$commit" +} + +# add_mr mr_ '^{/}' + +git checkout $head +for branch in "${branches[@]}"; do + git branch -D "$branch" +done |