aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/automerge7.sh26
1 files changed, 20 insertions, 6 deletions
diff --git a/scripts/automerge7.sh b/scripts/automerge7.sh
index d64f98a185..33f0462267 100755
--- a/scripts/automerge7.sh
+++ b/scripts/automerge7.sh
@@ -53,48 +53,62 @@ maybe_commit_and_push() {
# Nothing to merge currently
return
fi
+ cpCommitMsg=$2
+ if [ "$cpCommitMsg" == "" ]
+ then
+ echo "Internal error, no commit message passed to maybe_commit_and_push()"
+ exit 1;
+ fi
# echo "maybe_commit_and_push: Merging $cpCommit"
merge $cpCommit
+ echo -e "Merge changes from $FROM\n\n$cpCommitMsg"|git commit --amend -F -
pushMerged
}
git checkout $TO
-git pull --rebase
+git fetch
pending=`git log $TO..$FROM --reverse|grep "^commit "|sed "s/commit //"`
pendingCommit=
+pendingCommitMessage=
for commit in $pending
do
echo "Checking $commit..."
mergeDirective=`git log -n 1 --format=%B $commit|grep "^Merge:"|sed "s/Merge: //"`
+ commitMsg=`git log -n 1 --format=oneline --abbrev-commit $commit`
if [ "$mergeDirective" == "" ]
then
pendingCommit=$commit
+ pendingCommitMessage=$pendingCommitMessage"$commitMsg\n"
+ echo pendingCommitMessage: $pendingCommitMessage
elif [ "$mergeDirective" == "no" ]
then
- maybe_commit_and_push $pendingCommit
+ maybe_commit_and_push $pendingCommit "$pendingCommitMessage"
pendingCommit=
+ pendingCommitMessage=
echo
echo "Doing a no-op merge because of Merge: no for $commit"
git log -n 1 --format=%B $commit
echo
# Do a no-op merge
git merge $commit -s ours
- git commit --amend --no-edit
+ echo -e "No-op merge from $FROM\n\n$commitMsg"|git commit --amend -F -
pushMerged
elif [ "$mergeDirective" == "manual" ]
then
- maybe_commit_and_push $pendingCommit
+ maybe_commit_and_push $pendingCommit "$pendingCommitMessage"
pendingCommit=
+ pendingCommitMessage=
echo
echo "Stopping merge at $commit (merge: manual)"
echo "The following commit must be manually merged."
show $commit
exit 3
else
- maybe_commit_and_push $pendingCommit
+ maybe_commit_and_push $pendingCommit "$pendingCommitMessage"
pendingCommit=
+ pendingCommitMessage=
echo
echo "Commit $commit contains an unknown merge directive, Merge: $mergeDirective"
echo "Stopping merge."
@@ -104,4 +118,4 @@ do
done
# Push any pending merges
-maybe_commit_and_push $pendingCommit
+maybe_commit_and_push $pendingCommit "$pendingCommitMessage"