##// END OF EJS Templates
Fix bundle repos to use an index tuple consistent with revlogng...
mason@suse.com -
r2074:01ee43dd default
parent child Browse files
Show More
@@ -31,6 +31,7 b' class bundlerevlog(revlog.revlog):'
31 #
31 #
32 revlog.revlog.__init__(self, opener, indexfile, datafile)
32 revlog.revlog.__init__(self, opener, indexfile, datafile)
33 self.bundlefile = bundlefile
33 self.bundlefile = bundlefile
34 self.basemap = {}
34 def chunkpositer():
35 def chunkpositer():
35 for chunk in changegroup.chunkiter(bundlefile):
36 for chunk in changegroup.chunkiter(bundlefile):
36 pos = bundlefile.tell()
37 pos = bundlefile.tell()
@@ -58,7 +59,8 b' class bundlerevlog(revlog.revlog):'
58 if not prev:
59 if not prev:
59 prev = p1
60 prev = p1
60 # start, size, base is not used, link, p1, p2, delta ref
61 # start, size, base is not used, link, p1, p2, delta ref
61 e = (start, size, None, link, p1, p2, node, prev)
62 e = (start, size, None, link, p1, p2, node)
63 self.basemap[n] = prev
62 self.index.append(e)
64 self.index.append(e)
63 self.nodemap[node] = n
65 self.nodemap[node] = n
64 prev = node
66 prev = node
@@ -68,9 +70,9 b' class bundlerevlog(revlog.revlog):'
68 """is rev from the bundle"""
70 """is rev from the bundle"""
69 if rev < 0:
71 if rev < 0:
70 return False
72 return False
71 return len(self.index[rev]) > 7
73 return rev in self.basemap
72 def bundlebase(self, rev): return self.index[rev][7]
74 def bundlebase(self, rev): return self.basemap[rev]
73 def chunk(self, rev):
75 def chunk(self, rev, df=None):
74 # Warning: in case of bundle, the diff is against bundlebase,
76 # Warning: in case of bundle, the diff is against bundlebase,
75 # not against rev - 1
77 # not against rev - 1
76 # XXX: could use some caching
78 # XXX: could use some caching
General Comments 0
You need to be logged in to leave comments. Login now