changeset 2914:cd7bbb19b96e

merge with mpm.
author Vadim Gelfer <vadim.gelfer@gmail.com>
date Tue, 15 Aug 2006 09:37:58 -0700
parents 05f357b70cb0 (current diff) 05257fd28591 (diff)
children 013921c753bd 8ca608c1eb02
files
diffstat 3 files changed, 23 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/filelog.py	Tue Aug 15 18:14:58 2006 +0300
+++ b/mercurial/filelog.py	Tue Aug 15 09:37:58 2006 -0700
@@ -65,6 +65,27 @@
             return (m["copy"], bin(m["copyrev"]))
         return False
 
+    def cmp(self, node, text):
+        """compare text with a given file revision"""
+
+        # for renames, we have to go the slow way
+        if self.renamed(node):
+            t2 = self.read(node)
+            return t2 == text
+
+        p1, p2 = self.parents(node)
+        h = hash(text, p1, p2)
+
+        return h != node
+
+    def makenode(self, node, text):
+        """calculate a file nodeid for text, descended or possibly
+        unchanged from node"""
+
+        if self.cmp(node, text):
+            return hash(text, node, nullid)
+        return node
+
     def annotate(self, node):
 
         def decorate(text, rev):
--- a/mercurial/localrepo.py	Tue Aug 15 18:14:58 2006 +0300
+++ b/mercurial/localrepo.py	Tue Aug 15 09:37:58 2006 -0700
@@ -668,8 +668,7 @@
 
         def fcmp(fn, mf):
             t1 = self.wread(fn)
-            t2 = self.file(fn).read(mf.get(fn, nullid))
-            return cmp(t1, t2)
+            return self.file(fn).cmp(mf.get(fn, nullid), t1)
 
         def mfmatches(node):
             change = self.changelog.read(node)
--- a/mercurial/merge.py	Tue Aug 15 18:14:58 2006 +0300
+++ b/mercurial/merge.py	Tue Aug 15 09:37:58 2006 -0700
@@ -87,7 +87,7 @@
     m2 = repo.manifest.read(m2n).copy()
     ma = repo.manifest.read(man)
 
-    if not forcemerge and not overwrite:
+    if not force:
         for f in unknown:
             if f in m2:
                 t1 = repo.wread(f)