Reviewers: ,
Please review this at http://codereview.tryton.org/240001/
Affected files:
M hgnested/__init__.py
Index: hgnested/__init__.py
===================================================================
--- a/hgnested/__init__.py
+++ b/hgnested/__init__.py
@@ -12,7 +12,7 @@
from mercurial import commands, localrepo, sshrepo, sshserver, httprepo,
hgweb
from mercurial import ui as _ui
from mercurial import util
-from mercurial import cmdutil
+from mercurial import cmdutil, scmutil
from mercurial.i18n import _
from mercurial.hgweb.common import HTTP_OK
from mercurial.hgweb.protocol import HGTYPE
@@ -167,19 +167,47 @@
lui = ui.copy()
lui.readconfig(os.path.join(lpath, '.hg', 'hgrc'))
nrepo = hg.repository(lui, lpath)
+ if function is nested_diff:
+ kwargs['prefix'] = npath
if status:
lui.status('[%s]\n' % npath)
function(lui, nrepo, *args, **kwargs)
if status:
lui.status('\n')
+def nested_diff(ui, repo, *pats, **opts):
+ from mercurial import patch, extensions
+
+ revs = opts.get('rev')
+ change = opts.get('change')
+ stat = opts.get('stat')
+ reverse = opts.get('reverse')
+ prefix = opts.get('prefix') or ''
+
+ if revs and change:
+ msg = _('cannot specify --rev and --change at the same time')
+ raise util.Abort(msg)
+ elif change:
+ node2 = scmutil.revsingle(repo, change, None).node()
+ node1 = repo[node2].p1().node()
+ else:
+ node1, node2 = scmutil.revpair(repo, revs)
+
+ if reverse:
+ node1, node2 = node2, node1
+
+ diffopts = patch.diffopts(ui, opts)
+ m = scmutil.match(repo[node2], pats, opts)
+ cmdutil.diffordiffstat(ui, repo, diffopts, node1, node2, m, stat=stat,
+ prefix=prefix,
listsubrepos=opts.get('subrepos'))
+
def ndiff(ui, repo, *pats, **opts):
'''diff nested repositories (or selected files)
Show differences between revisions for the specified files.
Look at the help of diff command for more informations.'''
- _nested_apply(ui, repo, commands.diff, False, *pats, **opts)
+ _nested_apply(ui, repo, nested_diff, False, *pats, **opts)
def nclone(ui, source, dest=None, **opts):
'''make a copy of an existing repository and all nested repositories
--
[email protected] mailing list