SCRIPTS: backport: use short revs and resolve the initial commit
I find myself often getting trapped into calling "backport 2.0 HEAD" which
doesn't work because "HEAD" is passed as the argument to cherry-pick in
other repos. Let's resolve it first. And also let's shorten the commit IDs
to make the error messages more readable and to ease copy-paste.
diff --git a/scripts/backport b/scripts/backport
index 28a0603..36cdb57 100755
--- a/scripts/backport
+++ b/scripts/backport
@@ -22,8 +22,7 @@
}
short() {
- # git rev-parse --short $1
- echo "${1::8}"
+ git rev-parse --short "$1"
}
# returns the latest commit ID in $REPLY. Returns 0 on success, non-zero on
@@ -112,8 +111,9 @@
START="$PWD"
while [ -n "$1" ]; do
- UPSTREAM="$1"
- COMMIT="$1"
+ UPSTREAM="$(short $1)"
+ [ -n "$UPSTREAM" ] || die "branch $BRANCH: unknown commit ID $1, cannot backport."
+ COMMIT="$UPSTREAM"
BRANCH="-source-"
while :; do
if ! down; then
@@ -139,7 +139,7 @@
fi
get_last_commit || die "$BRANCH: cannot retrieve last commit ID, stopping after backporting commit $COMMIT (upstream $UPSTREAM)"
- COMMIT="$REPLY"
+ COMMIT="$(short $REPLY)"
done
walk_up || die "Failed to go back to $PWD, stopping *after* backporting upstream $UPSTREAM"
shift