--- a/mercurial/revlog.py
+++ b/mercurial/revlog.py
@@ -766,6 +766,19 @@ class revlog(object):
raise RevlogError(_("No match found"))
+ def cmp(self, node, text):
+ """compare text with a given file revision"""
+ p1, p2 = self.parents(node)
+ return hash(text, p1, p2) != 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 diff(self, a, b):
"""return a delta between two revisions"""
return mdiff.textdiff(a, b)