Show More
@@ -12,8 +12,7 b' of the GNU General Public License, incor' | |||
|
12 | 12 | |
|
13 | 13 | from node import * |
|
14 | 14 | from i18n import _ |
|
15 | import changegroup, util, os, struct, bz2, tempfile | |
|
16 | ||
|
15 | import changegroup, util, os, struct, bz2, tempfile, mdiff | |
|
17 | 16 | import localrepo, changelog, manifest, filelog, revlog |
|
18 | 17 | |
|
19 | 18 | class bundlerevlog(revlog.revlog): |
@@ -91,7 +90,7 b' class bundlerevlog(revlog.revlog):' | |||
|
91 | 90 | elif not self.bundle(rev1) and not self.bundle(rev2): |
|
92 | 91 | return revlog.revlog.revdiff(self, rev1, rev2) |
|
93 | 92 | |
|
94 |
return |
|
|
93 | return mdiff.textdiff(self.revision(self.node(rev1)), | |
|
95 | 94 | self.revision(self.node(rev2))) |
|
96 | 95 | |
|
97 | 96 | def revision(self, node): |
@@ -115,7 +114,7 b' class bundlerevlog(revlog.revlog):' | |||
|
115 | 114 | |
|
116 | 115 | while chain: |
|
117 | 116 | delta = self.chunk(chain.pop()) |
|
118 |
text = |
|
|
117 | text = mdiff.patches(text, [delta]) | |
|
119 | 118 | |
|
120 | 119 | p1, p2 = self.parents(node) |
|
121 | 120 | if node != revlog.hash(text, p1, p2): |
@@ -830,14 +830,6 b' class revlog(object):' | |||
|
830 | 830 | p1, p2 = self.parents(node) |
|
831 | 831 | return hash(text, p1, p2) != node |
|
832 | 832 | |
|
833 | def diff(self, a, b): | |
|
834 | """return a delta between two revisions""" | |
|
835 | return mdiff.textdiff(a, b) | |
|
836 | ||
|
837 | def patches(self, t, pl): | |
|
838 | """apply a list of patches to a string""" | |
|
839 | return mdiff.patches(t, pl) | |
|
840 | ||
|
841 | 833 | def chunk(self, rev, df=None): |
|
842 | 834 | start, length = self.start(rev), self.length(rev) |
|
843 | 835 | if self._inline: |
@@ -884,8 +876,8 b' class revlog(object):' | |||
|
884 | 876 | if b1 == b2 and rev1 + 1 == rev2: |
|
885 | 877 | return self.chunk(rev2) |
|
886 | 878 | else: |
|
887 |
return |
|
|
888 | self.revision(self.node(rev2))) | |
|
879 | return mdiff.textdiff(self.revision(self.node(rev1)), | |
|
880 | self.revision(self.node(rev2))) | |
|
889 | 881 | |
|
890 | 882 | def revision(self, node): |
|
891 | 883 | """return an uncompressed revision of a given""" |
@@ -914,12 +906,8 b' class revlog(object):' | |||
|
914 | 906 | self._loadindex(base, rev + 1) |
|
915 | 907 | text = self.chunk(base, df=df) |
|
916 | 908 | |
|
917 | bins = [] | |
|
918 | for r in xrange(base + 1, rev + 1): | |
|
919 | bins.append(self.chunk(r, df=df)) | |
|
920 | ||
|
921 | text = self.patches(text, bins) | |
|
922 | ||
|
909 | bins = [self.chunk(r, df) for r in xrange(base + 1, rev + 1)] | |
|
910 | text = mdiff.patches(text, bins) | |
|
923 | 911 | p1, p2 = self.parents(node) |
|
924 | 912 | if node != hash(text, p1, p2): |
|
925 | 913 | raise RevlogError(_("integrity check failed on %s:%d") |
@@ -998,7 +986,7 b' class revlog(object):' | |||
|
998 | 986 | if curr: |
|
999 | 987 | if not d: |
|
1000 | 988 | ptext = self.revision(self.node(prev)) |
|
1001 |
d = |
|
|
989 | d = mdiff.textdiff(ptext, text) | |
|
1002 | 990 | data = compress(d) |
|
1003 | 991 | l = len(data[1]) + len(data[0]) |
|
1004 | 992 | dist = l + offset - self.start(base) |
@@ -1150,7 +1138,7 b' class revlog(object):' | |||
|
1150 | 1138 | dfh.flush() |
|
1151 | 1139 | ifh.flush() |
|
1152 | 1140 | text = self.revision(chain) |
|
1153 |
text = |
|
|
1141 | text = mdiff.patches(text, [delta]) | |
|
1154 | 1142 | chk = self._addrevision(text, transaction, link, p1, p2, None, |
|
1155 | 1143 | ifh, dfh) |
|
1156 | 1144 | if not dfh and not self._inline: |
General Comments 0
You need to be logged in to leave comments.
Login now