# HG changeset patch # User Kevin Bullock # Date 2012-12-04 17:19:32 # Node ID 54f063acc5eaa952e3bfd6ae0356a279828d8909 # Parent 4ca434500dbfa26658229c1bcda7726c86ebac2e # Parent 5cafcac2414c7f0ebe9f1a29e994fa0d33491ad9 merge with stable diff --git a/.hgsigs b/.hgsigs --- a/.hgsigs +++ b/.hgsigs @@ -61,3 +61,4 @@ 072209ae4ddb654eb2d5fd35bff358c738414432 b3f0f9a39c4e1d0250048cd803ab03542d6f140a 0 iD8DBQBQamltywK+sNU5EO8RAlsqAJ4qF/m6aFu4mJCOKTiAP5RvZFK02ACfawYShUZO6OXEFfveU0aAxDR0M1k= d118a4f4fd16d9b558ec3f3e87bfee772861d2b7 0 iD8DBQBQgPV5ywK+sNU5EO8RArylAJ0abcx5NlDjyv3ZDWpAfRIHyRsJtQCgn4TMuEayqgxzrvadQZHdTEU2g38= 195ad823b5d58c68903a6153a25e3fb4ed25239d 0 iD8DBQBQkuT9ywK+sNU5EO8RAhB4AKCeerItoK2Jipm2cVf4euGofAa/WACeJj3TVd4pFILpb+ogj7ebweFLJi0= +0c10cf8191469e7c3c8844922e17e71a176cb7cb 0 iD8DBQBQvQWoywK+sNU5EO8RAnq3AJoCn98u4geFx5YaQaeh99gFhCd7bQCgjoBwBSUyOvGd0yBy60E3Vv3VZhM= diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -74,3 +74,4 @@ 072209ae4ddb654eb2d5fd35bff358c738414432 b3f0f9a39c4e1d0250048cd803ab03542d6f140a 2.3.2 d118a4f4fd16d9b558ec3f3e87bfee772861d2b7 2.4-rc 195ad823b5d58c68903a6153a25e3fb4ed25239d 2.4 +0c10cf8191469e7c3c8844922e17e71a176cb7cb 2.4.1 diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -627,7 +627,7 @@ def diffordiffstat(ui, repo, diffopts, n # subpath. The best we can do is to ignore it. tempnode2 = None submatch = matchmod.narrowmatcher(subpath, match) - sub.diff(diffopts, tempnode2, submatch, changes=changes, + sub.diff(ui, diffopts, tempnode2, submatch, changes=changes, stat=stat, fp=fp, prefix=prefix) class changeset_printer(object): diff --git a/mercurial/subrepo.py b/mercurial/subrepo.py --- a/mercurial/subrepo.py +++ b/mercurial/subrepo.py @@ -330,7 +330,7 @@ class abstractsubrepo(object): def status(self, rev2, **opts): return [], [], [], [], [], [], [] - def diff(self, diffopts, node2, match, prefix, **opts): + def diff(self, ui, diffopts, node2, match, prefix, **opts): pass def outgoing(self, ui, dest, opts): @@ -437,14 +437,14 @@ class hgsubrepo(abstractsubrepo): % (inst, subrelpath(self))) return [], [], [], [], [], [], [] - def diff(self, diffopts, node2, match, prefix, **opts): + def diff(self, ui, diffopts, node2, match, prefix, **opts): try: node1 = node.bin(self._state[1]) # We currently expect node2 to come from substate and be # in hex format if node2 is not None: node2 = node.bin(node2) - cmdutil.diffordiffstat(self._repo.ui, self._repo, diffopts, + cmdutil.diffordiffstat(ui, self._repo, diffopts, node1, node2, match, prefix=posixpath.join(prefix, self._path), listsubrepos=True, **opts) diff --git a/tests/test-diff-color.t b/tests/test-diff-color.t --- a/tests/test-diff-color.t +++ b/tests/test-diff-color.t @@ -125,6 +125,38 @@ qrecord c \x1b[0;33mrecord this change to 'a'? [Ynesfdaq?]\x1b[0m (esc) + $ hg qpop -a + popping patch + patch queue now empty + #endif +issue3712: test colorization of subrepo diff + + $ hg init sub + $ echo b > sub/b + $ hg -R sub commit -Am 'create sub' + adding b + $ echo 'sub = sub' > .hgsub + $ hg add .hgsub + $ hg commit -m 'add subrepo sub' + $ echo aa >> a + $ echo bb >> sub/b + + $ hg diff --color=always -S + \x1b[0;1mdiff --git a/a b/a\x1b[0m (esc) + \x1b[0;31;1m--- a/a\x1b[0m (esc) + \x1b[0;32;1m+++ b/a\x1b[0m (esc) + \x1b[0;35m@@ -7,3 +7,4 @@\x1b[0m (esc) + a + c + c + \x1b[0;32m+aa\x1b[0m (esc) + \x1b[0;1mdiff --git a/sub/b b/sub/b\x1b[0m (esc) + \x1b[0;31;1m--- a/sub/b\x1b[0m (esc) + \x1b[0;32;1m+++ b/sub/b\x1b[0m (esc) + \x1b[0;35m@@ -1,1 +1,2 @@\x1b[0m (esc) + b + \x1b[0;32m+bb\x1b[0m (esc) + $ cd ..