merge with mpm.
--- 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)