##// END OF EJS Templates
diff: don't crash when diffing a revision with a deleted subrepo (issue3153)...
Renato Cunha -
r15634:cfc15cbe stable
parent child Browse files
Show More
@@ -588,8 +588,14 b' def diffordiffstat(ui, repo, diffopts, n'
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 if node2 is not None:
591 try:
592 node2 = ctx2.substate[subpath][1]
592 if node2 is not None:
593 node2 = ctx2.substate[subpath][1]
594 except KeyError:
595 # A subrepo that existed in node1 was deleted between node1 and
596 # node2 (inclusive). Thus, ctx2's substate won't contain that
597 # subpath. The best we can do is to ignore it.
598 node2 = None
593 submatch = matchmod.narrowmatcher(subpath, match)
599 submatch = matchmod.narrowmatcher(subpath, match)
594 sub.diff(diffopts, node2, submatch, changes=changes,
600 sub.diff(diffopts, node2, submatch, changes=changes,
595 stat=stat, fp=fp, prefix=prefix)
601 stat=stat, fp=fp, prefix=prefix)
General Comments 0
You need to be logged in to leave comments. Login now