Commit 0b3d8592 by Patrick Steinhardt

scripts: add backporting script

This adds a simple script for backporting pull requests to older
branches. It accepts as parameters a list of pull request numbers which
whose commits are to be cherry-picked. The identification of PRs
currently happens by using the commit message of the merge of the PR,
which should conform to the message "Merge pull request #<PR>".

While the heuristic works in practice, we could instead also use the
direct references from GitHub via "pull/#<PR>/head". This requires the
user to have all these references fetched, though, so we can just use
the current heuristic until we experience any issues with that.
parent 7610638e
#!/bin/sh
if test $# -eq 0
then
echo "USAGE: $0 <#PR> [<#PR>...]"
exit
fi
commits=
for pr in $*
do
mergecommit=$(git rev-parse ":/Merge pull request #$pr" || exit 1)
mergebase=$(git merge-base "$mergecommit"^1 "$mergecommit"^2 || exit 1)
commits="$commits $(git rev-list --reverse "$mergecommit"^2 ^"$mergebase")"
done
echo "Cherry-picking the following commits:"
git rev-list --no-walk --oneline $commits
echo
git cherry-pick $commits
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment