# HG changeset patch # User Matt Mackall # Date 1155669493 18000 # Node ID 5df3e5cf16bce8a2c24de94d4aa6ef521840d372 # Parent 20b95aef3fe08dcc90b191c39426792a9286e671 Move cmp bits from filelog to revlog diff --git a/mercurial/filelog.py b/mercurial/filelog.py --- a/mercurial/filelog.py +++ b/mercurial/filelog.py @@ -73,18 +73,7 @@ class filelog(revlog): 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 + return revlog.cmp(self, node, text) def annotate(self, node): diff --git a/mercurial/revlog.py b/mercurial/revlog.py --- 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)