]> source.dussan.org Git - vaadin-framework.git/commitdiff
Include commit id and message in merge commit message
authorArtur Signell <artur@vaadin.com>
Tue, 23 Apr 2013 13:27:37 +0000 (16:27 +0300)
committerVaadin Code Review <review@vaadin.com>
Tue, 23 Apr 2013 13:38:13 +0000 (13:38 +0000)
Change-Id: I2557eddcb4fbd4fd1ec5c608a0d73c7fa1b243b6

scripts/automerge7.sh

index d64f98a1855f0043cf452f4244411926698d0aa4..33f046226760c23d5c40cb77c0105177084cdec6 100755 (executable)
@@ -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"