Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/cmdutil.py @ 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 | cfc15cbecc5e |
children | 1facaad963a8 |
comparison
equal
deleted
inserted
replaced
15691:7722593fef5c | 15698:43e068c15619 |
---|---|
586 | 586 |
587 if listsubrepos: | 587 if listsubrepos: |
588 ctx1 = repo[node1] | 588 ctx1 = repo[node1] |
589 ctx2 = repo[node2] | 589 ctx2 = repo[node2] |
590 for subpath, sub in subrepo.itersubrepos(ctx1, ctx2): | 590 for subpath, sub in subrepo.itersubrepos(ctx1, ctx2): |
591 tempnode2 = node2 | |
591 try: | 592 try: |
592 if node2 is not None: | 593 if node2 is not None: |
593 node2 = ctx2.substate[subpath][1] | 594 tempnode2 = ctx2.substate[subpath][1] |
594 except KeyError: | 595 except KeyError: |
595 # A subrepo that existed in node1 was deleted between node1 and | 596 # A subrepo that existed in node1 was deleted between node1 and |
596 # node2 (inclusive). Thus, ctx2's substate won't contain that | 597 # node2 (inclusive). Thus, ctx2's substate won't contain that |
597 # subpath. The best we can do is to ignore it. | 598 # subpath. The best we can do is to ignore it. |
598 node2 = None | 599 tempnode2 = None |
599 submatch = matchmod.narrowmatcher(subpath, match) | 600 submatch = matchmod.narrowmatcher(subpath, match) |
600 sub.diff(diffopts, node2, submatch, changes=changes, | 601 sub.diff(diffopts, tempnode2, submatch, changes=changes, |
601 stat=stat, fp=fp, prefix=prefix) | 602 stat=stat, fp=fp, prefix=prefix) |
602 | 603 |
603 class changeset_printer(object): | 604 class changeset_printer(object): |
604 '''show changeset information when templating not requested.''' | 605 '''show changeset information when templating not requested.''' |
605 | 606 |