Mercurial > hg
changeset 4989:1aaed3d69772
revlog: eliminate diff and patches functions
call mdiff variants directly
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Mon, 23 Jul 2007 20:44:08 -0500 |
parents | 14486eea8e7a |
children | 4491125c0f21 |
files | mercurial/bundlerepo.py mercurial/revlog.py |
diffstat | 2 files changed, 9 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/bundlerepo.py Mon Jul 23 20:44:08 2007 -0500 +++ b/mercurial/bundlerepo.py Mon Jul 23 20:44:08 2007 -0500 @@ -12,8 +12,7 @@ from node import * from i18n import _ -import changegroup, util, os, struct, bz2, tempfile - +import changegroup, util, os, struct, bz2, tempfile, mdiff import localrepo, changelog, manifest, filelog, revlog class bundlerevlog(revlog.revlog): @@ -91,7 +90,7 @@ elif not self.bundle(rev1) and not self.bundle(rev2): return revlog.revlog.revdiff(self, rev1, rev2) - return self.diff(self.revision(self.node(rev1)), + return mdiff.textdiff(self.revision(self.node(rev1)), self.revision(self.node(rev2))) def revision(self, node): @@ -115,7 +114,7 @@ while chain: delta = self.chunk(chain.pop()) - text = self.patches(text, [delta]) + text = mdiff.patches(text, [delta]) p1, p2 = self.parents(node) if node != revlog.hash(text, p1, p2):
--- a/mercurial/revlog.py Mon Jul 23 20:44:08 2007 -0500 +++ b/mercurial/revlog.py Mon Jul 23 20:44:08 2007 -0500 @@ -830,14 +830,6 @@ p1, p2 = self.parents(node) return hash(text, p1, p2) != node - def diff(self, a, b): - """return a delta between two revisions""" - return mdiff.textdiff(a, b) - - def patches(self, t, pl): - """apply a list of patches to a string""" - return mdiff.patches(t, pl) - def chunk(self, rev, df=None): start, length = self.start(rev), self.length(rev) if self._inline: @@ -884,8 +876,8 @@ if b1 == b2 and rev1 + 1 == rev2: return self.chunk(rev2) else: - return self.diff(self.revision(self.node(rev1)), - self.revision(self.node(rev2))) + return mdiff.textdiff(self.revision(self.node(rev1)), + self.revision(self.node(rev2))) def revision(self, node): """return an uncompressed revision of a given""" @@ -914,12 +906,8 @@ self._loadindex(base, rev + 1) text = self.chunk(base, df=df) - bins = [] - for r in xrange(base + 1, rev + 1): - bins.append(self.chunk(r, df=df)) - - text = self.patches(text, bins) - + bins = [self.chunk(r, df) for r in xrange(base + 1, rev + 1)] + text = mdiff.patches(text, bins) p1, p2 = self.parents(node) if node != hash(text, p1, p2): raise RevlogError(_("integrity check failed on %s:%d") @@ -998,7 +986,7 @@ if curr: if not d: ptext = self.revision(self.node(prev)) - d = self.diff(ptext, text) + d = mdiff.textdiff(ptext, text) data = compress(d) l = len(data[1]) + len(data[0]) dist = l + offset - self.start(base) @@ -1150,7 +1138,7 @@ dfh.flush() ifh.flush() text = self.revision(chain) - text = self.patches(text, [delta]) + text = mdiff.patches(text, [delta]) chk = self._addrevision(text, transaction, link, p1, p2, None, ifh, dfh) if not dfh and not self._inline: