Mercurial > hg
changeset 15698:43e068c15619 stable
diff: when diffing a revision with a deleted subrepo, maintain the node context (issue3153)
author | Alistair Bell <alistair.bell@netronome.com> |
---|---|
date | Thu, 15 Dec 2011 16:41:03 -0500 |
parents | 7722593fef5c |
children | 84e55467093c |
files | mercurial/cmdutil.py |
diffstat | 1 files changed, 4 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/cmdutil.py Mon Dec 19 14:04:09 2011 -0600 +++ b/mercurial/cmdutil.py Thu Dec 15 16:41:03 2011 -0500 @@ -588,16 +588,17 @@ ctx1 = repo[node1] ctx2 = repo[node2] for subpath, sub in subrepo.itersubrepos(ctx1, ctx2): + tempnode2 = node2 try: if node2 is not None: - node2 = ctx2.substate[subpath][1] + tempnode2 = ctx2.substate[subpath][1] except KeyError: # A subrepo that existed in node1 was deleted between node1 and # node2 (inclusive). Thus, ctx2's substate won't contain that # subpath. The best we can do is to ignore it. - node2 = None + tempnode2 = None submatch = matchmod.narrowmatcher(subpath, match) - sub.diff(diffopts, node2, submatch, changes=changes, + sub.diff(diffopts, tempnode2, submatch, changes=changes, stat=stat, fp=fp, prefix=prefix) class changeset_printer(object):