comparison mercurial/cmdutil.py @ 12175:c0a8f9dea0f6

subrepos: handle modified but uncommitted .hgsub
author Martin Geisler <mg@lazybytes.net>
date Tue, 07 Sep 2010 16:23:55 +0200
parents d2c5b0927c28
children ecab10820983
comparison
equal deleted inserted replaced
12174:7bccd04292a2 12175:c0a8f9dea0f6
680 changes, diffopts, prefix=prefix): 680 changes, diffopts, prefix=prefix):
681 write(chunk, label=label) 681 write(chunk, label=label)
682 682
683 if listsubrepos: 683 if listsubrepos:
684 ctx1 = repo[node1] 684 ctx1 = repo[node1]
685 for subpath in ctx1.substate: 685 ctx2 = repo[node2]
686 sub = ctx1.sub(subpath) 686 # Create a (subpath, ctx) mapping where we prefer subpaths
687 # from ctx1. The subpaths from ctx2 are important when the
688 # .hgsub file has been modified (in ctx2) but not yet
689 # committed (in ctx1).
690 subpaths = dict.fromkeys(ctx2.substate, ctx2)
691 subpaths.update(dict.fromkeys(ctx1.substate, ctx1))
692 for subpath, ctx in subpaths.iteritems():
693 sub = ctx.sub(subpath)
687 if node2 is not None: 694 if node2 is not None:
688 node2 = bin(repo[node2].substate[subpath][1]) 695 node2 = bin(ctx2.substate[subpath][1])
689 submatch = matchmod.narrowmatcher(subpath, match) 696 submatch = matchmod.narrowmatcher(subpath, match)
690 sub.diff(diffopts, node2, submatch, changes=changes, 697 sub.diff(diffopts, node2, submatch, changes=changes,
691 stat=stat, fp=fp, prefix=prefix) 698 stat=stat, fp=fp, prefix=prefix)
692 699
693 class changeset_printer(object): 700 class changeset_printer(object):