Browse Source

chore(merge-script): add a way to add optional merge message

This allows to close related to PR issues when PR submitter forgets to
include that in commit message, or add some other additional info.

E.g. `./merge-pr.sh 3033 'Fu fu fu. :3'` would result in:
```
    Merge pull request #3033

    Fu fu fu. :3

    sudden6 (1):
          update friend activity on groupchat events     fixes #2848
```
pull/3037/head
Zetok Zalbavar 10 years ago
parent
commit
65608596d5
No known key found for this signature in database
GPG Key ID: C953D3880212068A
  1. 49
      merge-pr.sh

49
merge-pr.sh

@ -21,34 +21,57 @@ @@ -21,34 +21,57 @@
# Requires SSH key that github accepts and GPG set to sign merge commits.
# usage:
# ./$script $pr_number
# ./$script $pr_number $optional_message
#
#
# $pr_number – number of the PR as shown on GH
# $optional_message – message that is going to be put in merge commit,
# before the appended shortlog.
#
PR=$1
# make sure to add newlines to the message, otherwise merge message
# will not look well
if [[ ! -z $2 ]]
then
OPT_MSG="
$2
"
fi
# FIXME: ↓
#[[ ${PR} =~ "^[:digit:]+$" ]] || echo "Not a PR number!" && exit 1
# list remotes, and if there's no tux3 one, add it
if ! git remote | grep original
if ! git remote | grep original > /dev/null
then
git remote add original git@github.com:tux3/qTox.git
fi
# print the message only if the merge was successful
after_merge_msg() {
echo ""
echo "PR #$PR was merged into «merge$PR» branch."
echo "To compare with master:"
echo "git diff master..merge$PR"
echo ""
echo "To push that to master on github:"
echo "git checkout master && git merge --ff merge$PR && git push original master"
echo ""
echo "After pushing to master, delete branches:"
echo ""
echo "git branch -d {merge,}$PR"
}
git fetch original && \
git checkout master && \
git rebase original/master master && \
git fetch original pull/$PR/head:$PR && \
git checkout master -b merge$PR && \
git merge --no-ff -S $PR -m "Merge pull request #$PR
$OPT_MSG
$(git shortlog master..$PR)" && \
echo ""
echo "PR #$PR was merged into «merge$PR» branch."
echo "To compare with master:"
echo "git diff master..merge$PR"
echo ""
echo "To push that to master on github:"
echo "git checkout master && git merge --ff merge$PR && git push original master"
echo ""
echo "After pushing to master, delete branches:"
echo "git branch -d {merge,}$PR"
after_merge_msg

Loading…
Cancel
Save