blob: 90539a96389b05f71de34e07370a09af0295a7db [file] [log] [blame]
#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
print_error() {
echo "Error: \`$1\` is not a valid commit. To debug, run:"
echo
echo " git rev-parse --verify $1"
echo
}
full_sha() {
git rev-parse \
--verify \
--quiet \
"$1^{object}" || print_error $1
}
commit_message_with_backport_note() {
message=$(git log --format=%B -n 1 $1)
echo $message | awk "NR==1{print; print \"\n(backport-of: $1)\"} NR!=1"
}
cherry_pick_commit() {
sha=$(full_sha $1)
git cherry-pick $sha > /dev/null
git commit \
--amend \
--file <(commit_message_with_backport_note $sha)
}
for arg ; do
cherry_pick_commit $arg
done