comparison mercurial/revlog.py @ 14:e0e5c1b9febd

Fix off-by-one truncation in transaction rollback.
author mpm@selenic.com
date Wed, 04 May 2005 09:33:46 -0800
parents ecf3fd948051
children 9cf83bf9ad38
comparison
equal deleted inserted replaced
13:eb87b7dc4236 14:e0e5c1b9febd
61 def base(self, rev): return self.index[rev][2] 61 def base(self, rev): return self.index[rev][2]
62 62
63 def revisions(self, list): 63 def revisions(self, list):
64 # this can be optimized to do spans, etc 64 # this can be optimized to do spans, etc
65 # be stupid for now 65 # be stupid for now
66 for r in list: 66 for node in list:
67 yield self.revision(r) 67 yield self.revision(node)
68 68
69 def diff(self, a, b): 69 def diff(self, a, b):
70 return mdiff.textdiff(a, b) 70 return mdiff.textdiff(a, b)
71 71
72 def patch(self, text, patch): 72 def patch(self, text, patch):
149 149
150 self.index.append(e) 150 self.index.append(e)
151 self.nodemap[node] = n 151 self.nodemap[node] = n
152 entry = struct.pack(indexformat, *e) 152 entry = struct.pack(indexformat, *e)
153 153
154 transaction.add(self.datafile, e[0]) 154 transaction.add(self.datafile, e[0] - 1)
155 self.opener(self.datafile, "a").write(data) 155 self.opener(self.datafile, "a").write(data)
156 transaction.add(self.indexfile, n * len(entry)) 156 transaction.add(self.indexfile, (n + 1) * len(entry) - 1)
157 self.opener(self.indexfile, "a").write(entry) 157 self.opener(self.indexfile, "a").write(entry)
158 158
159 self.cache = (node, n, text) 159 self.cache = (node, n, text)
160 return node 160 return node
161 161