diff mercurial/commands.py @ 12810:a68ccfd9c7be stable

backout: add --tool argument for specifying merge tool
author Steve Borho <steve@borho.org>
date Fri, 22 Oct 2010 11:58:43 -0500
parents e5922564ab01
children 165079e564f0
line wrap: on
line diff
--- a/mercurial/commands.py	Fri Oct 22 17:08:15 2010 +0200
+++ b/mercurial/commands.py	Fri Oct 22 11:58:43 2010 -0500
@@ -278,7 +278,11 @@
     revert_opts['no_backup'] = None
     revert(ui, repo, **revert_opts)
     if not opts.get('merge') and op1 != node:
-        return hg.update(repo, op1)
+        try:
+            ui.setconfig('ui', 'forcemerge', opts.get('tool', ''))
+            return hg.update(repo, op1)
+        finally:
+            ui.setconfig('ui', 'forcemerge', '')
 
     commit_opts = opts.copy()
     commit_opts['addremove'] = False
@@ -295,7 +299,11 @@
         hg.clean(repo, op1, show_stats=False)
         ui.status(_('merging with changeset %s\n')
                   % nice(repo.changelog.tip()))
-        return hg.merge(repo, hex(repo.changelog.tip()))
+        try:
+            ui.setconfig('ui', 'forcemerge', opts.get('tool', ''))
+            return hg.merge(repo, hex(repo.changelog.tip()))
+        finally:
+            ui.setconfig('ui', 'forcemerge', '')
     return 0
 
 def bisect(ui, repo, rev=None, extra=None, command=None,
@@ -4005,6 +4013,8 @@
            _('merge with old dirstate parent after backout')),
           ('', 'parent', '',
            _('parent to choose when backing out merge'), _('REV')),
+          ('t', 'tool', '',
+           _('specify merge tool')),
           ('r', 'rev', '',
            _('revision to backout'), _('REV')),
          ] + walkopts + commitopts + commitopts2,