# HG changeset patch # User Matt Mackall # Date 1159305712 18000 # Node ID a9e75b371315e7f6f2cc9f837a4e3f688fad21d3 # Parent 84561ea8711ec405ddf84231fb7a3bedd0ea40a7 merge: move partial filtering out of manifest merge diff -r 84561ea8711e -r a9e75b371315 mercurial/merge.py --- a/mercurial/merge.py Tue Sep 26 16:04:07 2006 -0500 +++ b/mercurial/merge.py Tue Sep 26 16:21:52 2006 -0500 @@ -171,7 +171,12 @@ return copy -def manifestmerge(ui, m1, m2, ma, overwrite, backwards, partial): +def filtermanifest(man, partial): + if partial: + for k in man.keys(): + if not partial(k): del man[k] + +def manifestmerge(ui, m1, m2, ma, overwrite, backwards): """ Merge manifest m1 with m2 using ancestor ma and generate merge action list """ @@ -187,13 +192,6 @@ ui.debug(" %s: %s -> %s\n" % (f, msg, m)) action.append((f, m) + args) - # Filter manifests - if partial: - for f in m1.keys(): - if not partial(f): del m1[f] - for f in m2.keys(): - if not partial(f): del m2[f] - # Compare manifests for f, n in m1.iteritems(): if f in m2: @@ -363,6 +361,8 @@ copy = {} m1 = workingmanifest(repo, m1, status) + filtermanifest(m1, partial) + filtermanifest(m2, partial) if not force: checkunknown(repo, m2, status) @@ -371,7 +371,7 @@ if not (backwards or overwrite): copy = findcopies(repo, m1, m2, repo.changelog.rev(pa)) - action += manifestmerge(repo.ui, m1, m2, ma, overwrite, backwards, partial) + action += manifestmerge(repo.ui, m1, m2, ma, overwrite, backwards) del m1, m2, ma ### apply phase