# HG changeset patch # User Sune Foldager <c...@cyanite.org> # Date 1255721070 -7200 # Node ID a0fbafed1f3d9be1f9c48c79bd5d0a75b0e4bd6c # Parent 9de54536f753573c0c456828067ed1624f7de9f3 visdiff: prefer --change over --rev in rawextdiff 3-way mode
In internal diff mode, --rev is prefered instead, since we can only diff against a single parent for merge changesets here. diff --git a/tortoisehg/hgtk/changeset.py b/tortoisehg/hgtk/changeset.py --- a/tortoisehg/hgtk/changeset.py +++ b/tortoisehg/hgtk/changeset.py @@ -744,8 +744,8 @@ if not self.curfile: return - opts = {'bundle':self.bfile} rev = self.currev + opts = {'change':str(rev), 'bundle':self.bfile} parents = self.repo[rev].parents() if len(parents) == 2: if self.diff_other_parent(): @@ -753,8 +753,6 @@ else: parent = parents[0].rev() opts['rev'] = [str(parent), str(rev)] - else: - opts['change'] = str(rev) self._do_diff([self.curfile], opts) diff --git a/tortoisehg/hgtk/history.py b/tortoisehg/hgtk/history.py --- a/tortoisehg/hgtk/history.py +++ b/tortoisehg/hgtk/history.py @@ -1494,8 +1494,8 @@ dlg.hide() def vdiff_change(self, menuitem, pats=[]): - opts = {'bundle':self.bfile} rev = self.currevid + opts = {'change':str(rev), 'bundle':self.bfile} parents = self.repo[rev].parents() if len(parents) == 2: if self.changeview.diff_other_parent(): @@ -1503,8 +1503,6 @@ else: parent = parents[0].rev() opts['rev'] = [str(parent), str(rev)] - else: - opts['change'] = str(rev) self._do_diff(pats, opts) def vdiff_local(self, menuitem, pats=[]): diff --git a/tortoisehg/hgtk/visdiff.py b/tortoisehg/hgtk/visdiff.py --- a/tortoisehg/hgtk/visdiff.py +++ b/tortoisehg/hgtk/visdiff.py @@ -307,6 +307,15 @@ ui.warn(_('Extdiff command not recognized\n')) return pats = hglib.canonpaths(pats) + + # if both --change and --rev is given, remove --rev in 3-way mode, + # and --change in normal mode + if 'change' in opts and 'rev' in opts: + if '$parent2' in ''.join(diffopts): + del opts['rev'] + else: + del opts['change'] + try: ret = extdiff.dodiff(ui, repo, diffcmd, diffopts, pats, opts) except OSError, e: @@ -347,6 +356,11 @@ os.chdir(oldcwd) return None else: + # prefer --rev over --change for internal diff handling since we can + # only diff against a single parent at a time for merge changesets + if 'change' in opts and 'rev' in opts: + del opts['change'] + pats = hglib.canonpaths(pats) if opts.get('canonpats'): pats = list(pats) + opts['canonpats'] ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Tortoisehg-develop mailing list Tortoisehg-develop@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop