summaryrefslogtreecommitdiff
path: root/script/backport.sh
blob: 3c2f899d6d60f4b7ec59069d39fcdea2208c5697 (plain)
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