backport.sh 462 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
#!/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