# HG changeset patch
# User Simon Heimberg <sim...@besonet.ch>
# Date 1242813515 -7200
# Node ID 6bfd63beab2aa114edecb6c1c0d801da3db54907
# Parent  33acf9764dafc3a10b2e124f9491846a474c2ef9
merge: allow to force the merge tool

diff -r 33acf9764daf -r 6bfd63beab2a hggtk/merge.py
--- a/hggtk/merge.py    Mit Mai 20 08:39:51 2009 +0200
+++ b/hggtk/merge.py    Mit Mai 20 11:58:35 2009 +0200
@@ -87,6 +87,18 @@
         hbbox.add(undo)
         hbbox.add(close)
 
+        vlist = gtk.ListStore(str, bool)
+        combo = gtk.ComboBoxEntry(vlist, 0)
+        self.mergetool = combo
+        combo.set_row_separator_func(lambda model, path: model[path][1])
+        combo.child.set_width_chars(8)
+        lbl = gtk.Label(_('mergetool:'))
+        hbbox.add(lbl)
+        hbbox.add(combo)
+        vlist.append(('', False))
+        for tool in hglib.mergetools(repo.ui):
+            vlist.append((hglib.toutf(tool), False))
+
         commit.connect('clicked', self.commit)
         undo.connect('clicked', self.undo, local, merge, commit)
         merge.connect('clicked', self.merge, other, commit, undo)
@@ -98,15 +110,25 @@
 
     def merge(self, button, other, commit, undo):
         cmdline = ['hg', 'merge', '--rev', other]
+        tool = hglib.fromutf(self.mergetool.child.get_text())
+        if tool:
+            oldmergeenv = os.environ.get('HGMERGE')
+            os.environ['HGMERGE'] = tool
         dlg = hgcmd.CmdDialog(cmdline)
         dlg.run()
         dlg.hide()
         repo = hg.repository(ui.ui(), path=paths.find_root())
         if len(repo.parents()) == 1:
             return
+        if tool:
+            if oldmergeenv:
+                os.environ['HGMERGE'] = oldmergeenv
+            else:
+                del os.environ['HGMERGE']
         if self.notify_func:
             self.notify_func(self.notify_args)
         button.set_sensitive(False)
+        self.mergetool.set_sensitive(False)
         undo.set_sensitive(True)
         commit.set_sensitive(True)
         commit.grab_focus()
@@ -141,6 +163,7 @@
         button.set_sensitive(False)
         commit.set_sensitive(False)
         merge.set_sensitive(True)
+        self.mergetool.set_sensitive(True)
         merge.grab_focus()
 
 def run(ui, *pats, **opts):

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Tortoisehg-develop mailing list
Tortoisehg-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop

Reply via email to