Mercurial > hg > mercurial-crew-with-dirclash
comparison mercurial/bundlerepo.py @ 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 | aba624d2301d |
comparison
equal
deleted
inserted
replaced
4988:14486eea8e7a | 4989:1aaed3d69772 |
---|---|
10 of the GNU General Public License, incorporated herein by reference. | 10 of the GNU General Public License, incorporated herein by reference. |
11 """ | 11 """ |
12 | 12 |
13 from node import * | 13 from node import * |
14 from i18n import _ | 14 from i18n import _ |
15 import changegroup, util, os, struct, bz2, tempfile | 15 import changegroup, util, os, struct, bz2, tempfile, mdiff |
16 | |
17 import localrepo, changelog, manifest, filelog, revlog | 16 import localrepo, changelog, manifest, filelog, revlog |
18 | 17 |
19 class bundlerevlog(revlog.revlog): | 18 class bundlerevlog(revlog.revlog): |
20 def __init__(self, opener, indexfile, bundlefile, | 19 def __init__(self, opener, indexfile, bundlefile, |
21 linkmapper=None): | 20 linkmapper=None): |
89 if revb == rev1: | 88 if revb == rev1: |
90 return self.chunk(rev2) | 89 return self.chunk(rev2) |
91 elif not self.bundle(rev1) and not self.bundle(rev2): | 90 elif not self.bundle(rev1) and not self.bundle(rev2): |
92 return revlog.revlog.revdiff(self, rev1, rev2) | 91 return revlog.revlog.revdiff(self, rev1, rev2) |
93 | 92 |
94 return self.diff(self.revision(self.node(rev1)), | 93 return mdiff.textdiff(self.revision(self.node(rev1)), |
95 self.revision(self.node(rev2))) | 94 self.revision(self.node(rev2))) |
96 | 95 |
97 def revision(self, node): | 96 def revision(self, node): |
98 """return an uncompressed revision of a given""" | 97 """return an uncompressed revision of a given""" |
99 if node == nullid: return "" | 98 if node == nullid: return "" |
113 if text is None: | 112 if text is None: |
114 text = revlog.revlog.revision(self, iter_node) | 113 text = revlog.revlog.revision(self, iter_node) |
115 | 114 |
116 while chain: | 115 while chain: |
117 delta = self.chunk(chain.pop()) | 116 delta = self.chunk(chain.pop()) |
118 text = self.patches(text, [delta]) | 117 text = mdiff.patches(text, [delta]) |
119 | 118 |
120 p1, p2 = self.parents(node) | 119 p1, p2 = self.parents(node) |
121 if node != revlog.hash(text, p1, p2): | 120 if node != revlog.hash(text, p1, p2): |
122 raise revlog.RevlogError(_("integrity check failed on %s:%d") | 121 raise revlog.RevlogError(_("integrity check failed on %s:%d") |
123 % (self.datafile, self.rev(node))) | 122 % (self.datafile, self.rev(node))) |