diff mercurial/localrepo.py @ 7564:f1af59451c0c

localrepo: fix bad manifest delta generation (issue1433) The issue came from the 720ae5085ee3 fix for issue586 working only for manifest.add() fast path, where the incorrect removed file set was ignored. This path was no longer taken after 716a1296e182 refactoring.
author Patrick Mezard <pmezard@gmail.com>
date Sat, 03 Jan 2009 20:16:10 +0100
parents 3342e6ada4b9
children 7bf7c073375e d821ea464465 a32847fa0df0
line wrap: on
line diff
--- a/mercurial/localrepo.py	Sat Jan 03 20:50:06 2009 +0100
+++ b/mercurial/localrepo.py	Sat Jan 03 20:16:10 2009 +0100
@@ -882,16 +882,15 @@
 
             # update manifest
             m1.update(new)
-            removed = []
+            removed = [f for f in util.sort(remove) if f in m1 or f in m2]
+            removed1 = []
 
-            for f in util.sort(remove):
+            for f in removed:
                 if f in m1:
                     del m1[f]
-                    removed.append(f)
-                elif f in m2:
-                    removed.append(f)
+                    removed1.append(f)
             mn = self.manifest.add(m1, trp, linkrev, c1[0], c2[0],
-                                   (new, removed))
+                                   (new, removed1))
 
             # add changeset
             if (not empty_ok and not text) or force_editor: