diff mercurial/merge.py @ 22964:2793ecb1522d

manifest: repurpose flagsdiff() into (node-and-flag)diff() The manifestdict class already has a method for diff flags between two manifests (presumably because there is no full access to the private _flags field). The only caller is merge.manifestmerge(), which also wants a diff of files between the same manifests. Let's combine the code for diffing files and flags into a single method on manifestdict. This puts all the manifest diffing in one place and will allow for further simplification. It might also be useful for it to be encapsulated in manifestdict if we later decide to to shard manifests. The docstring is intentionally unclear about missing entries for now.
author Martin von Zweigbergk <martinvonz@gmail.com>
date Tue, 14 Oct 2014 17:09:16 -0700
parents ce0592328d68
children b697fa74b475
line wrap: on
line diff
--- a/mercurial/merge.py	Thu Oct 16 17:03:21 2014 +0900
+++ b/mercurial/merge.py	Tue Oct 14 17:09:16 2014 -0700
@@ -10,7 +10,7 @@
 from node import nullid, nullrev, hex, bin
 from i18n import _
 from mercurial import obsolete
-import error as errormod, util, filemerge, copies, subrepo, worker, dicthelpers
+import error as errormod, util, filemerge, copies, subrepo, worker
 import errno, os, shutil
 
 _pack = struct.pack
@@ -422,11 +422,9 @@
 
     aborts = []
     # Compare manifests
-    fdiff = dicthelpers.diff(m1, m2)
-    flagsdiff = m1.flagsdiff(m2)
-    diff12 = dicthelpers.join(fdiff, flagsdiff)
+    diff = m1.diff(m2)
 
-    for f, (n12, fl12) in diff12.iteritems():
+    for f, (n12, fl12) in diff.iteritems():
         if n12:
             n1, n2 = n12
         else: # file contents didn't change, but flags did