From eb7625208927febb80c281edb21e080a59c40295 Mon Sep 17 00:00:00 2001
From: Frederik Gladhorn <frederik.gladhorn@digia.com>
Date: Tue, 16 Sep 2014 15:55:36 +0200
Subject: [PATCH] Add mergetool option to merge script
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Change-Id: I79ded5e4a437e84d444f98e20c70bef023f66398
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
---
 bin/git-qt-merge-mainlines | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/bin/git-qt-merge-mainlines b/bin/git-qt-merge-mainlines
index 4e16c8c..dabc9f2 100755
--- a/bin/git-qt-merge-mainlines
+++ b/bin/git-qt-merge-mainlines
@@ -56,8 +56,13 @@ def do_merge(module, config):
     try:
         git_merge = "git merge origin/%(from)s --no-edit --no-ff" %opts
         ret = subprocess.call(git_merge.split(), stdout=fnull)
+        if ret != 0 and config.mergetool:
+            print("Starting mergetool")
+            ret = subprocess.call(['git', 'mergetool', '-y'])
+            if ret == 0:
+                ret = subprocess.call(['git', 'commit', '--no-edit'], stdout=fnull)
         if ret != 0:
-            print("Module $s failed to merge, manual merge needed." % module)
+            print("Module %s failed to merge, manual merge needed." % module)
             return False
 
         # Make sure we get a change-id as git merge doesn't generate it for us
@@ -216,6 +221,7 @@ if __name__== "__main__":
     parser.add_argument('-f', '--branch-from', type=str, default='stable', help='from which branch to merge')
     parser.add_argument('-t', '--branch-to', type=str, default='dev', help='the target branch')
     parser.add_argument('-v', '--version', type=str, default='', help='set version in .qmake.conf to given version string')
+    parser.add_argument('--mergetool', action="store_true", help='run mergetool for conflicts')
     args = parser.parse_args(namespace=config)
 
     logging.basicConfig(format='%(levelname)s: %(message)s')
-- 
GitLab