summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrediano Ziglio <freddy77@gmail.com>2020-06-06 09:03:11 +0100
committerFrediano Ziglio <freddy77@gmail.com>2024-06-12 21:34:58 +0100
commit7717b1b6ef3f3e8f1f1043b46ffe59e6805e6d91 (patch)
tree86ee4f412efa218b8ede15d6af14e9c5071b5851
parent23429867e1449cb426563b79612517efa09aa49c (diff)
EEE save script for MRscpp_other
-rwxr-xr-xrebuild_mrs36
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