##// END OF EJS Templates
bundlerepo: fix raw handling in revision()...
Jun Wu -
r31836:4598e8f4 default
parent child Browse files
Show More
@@ -131,28 +131,28 b' class bundlerevlog(revlog.revlog):'
131 if node == nullid:
131 if node == nullid:
132 return ""
132 return ""
133
133
134 text = None
134 rawtext = None
135 chain = []
135 chain = []
136 iterrev = rev
136 iterrev = rev
137 # reconstruct the revision if it is from a changegroup
137 # reconstruct the revision if it is from a changegroup
138 while iterrev > self.repotiprev:
138 while iterrev > self.repotiprev:
139 if self._cache and self._cache[1] == iterrev:
139 if self._cache and self._cache[1] == iterrev:
140 text = self._cache[2]
140 rawtext = self._cache[2]
141 break
141 break
142 chain.append(iterrev)
142 chain.append(iterrev)
143 iterrev = self.index[iterrev][3]
143 iterrev = self.index[iterrev][3]
144 if text is None:
144 if rawtext is None:
145 text = self.baserevision(iterrev)
145 rawtext = self.baserevision(iterrev)
146
146
147 while chain:
147 while chain:
148 delta = self._chunk(chain.pop())
148 delta = self._chunk(chain.pop())
149 text = mdiff.patches(text, [delta])
149 rawtext = mdiff.patches(rawtext, [delta])
150
150
151 text, validatehash = self._processflags(text, self.flags(rev),
151 text, validatehash = self._processflags(rawtext, self.flags(rev),
152 'read', raw=raw)
152 'read', raw=raw)
153 if validatehash:
153 if validatehash:
154 self.checkhash(text, node, rev=rev)
154 self.checkhash(text, node, rev=rev)
155 self._cache = (node, rev, text)
155 self._cache = (node, rev, rawtext)
156 return text
156 return text
157
157
158 def baserevision(self, nodeorrev):
158 def baserevision(self, nodeorrev):
@@ -188,11 +188,33 b''
188 4 changesets found
188 4 changesets found
189 $ hg --config extensions.strip= strip -r 2 --no-backup --force -q
189 $ hg --config extensions.strip= strip -r 2 --no-backup --force -q
190 $ hg -R bundle.hg log --stat -T '{rev} {desc}\n' base64 2>&1 | egrep -v '^(\*\*| )'
190 $ hg -R bundle.hg log --stat -T '{rev} {desc}\n' base64 2>&1 | egrep -v '^(\*\*| )'
191 Traceback (most recent call last):
191 5 branching
192 mercurial.mpatch.mpatchError: invalid patch
192 base64 | 2 +-
193 1 files changed, 1 insertions(+), 1 deletions(-)
194
195 4 base64-4
196 base64 | 2 +-
197 1 files changed, 1 insertions(+), 1 deletions(-)
198
199 3 base64-three
200 base64 | 2 +-
201 1 files changed, 1 insertions(+), 1 deletions(-)
202
203 2 base64-two
204 base64 | 2 +-
205 1 files changed, 1 insertions(+), 1 deletions(-)
206
207 1 base64-single
208 base64 | 2 +-
209 1 files changed, 1 insertions(+), 1 deletions(-)
210
211 0 base64-0
212 base64 | 1 +
213 1 files changed, 1 insertions(+), 0 deletions(-)
214
193
215
194 $ hg bundle -R bundle.hg --base 1 bundle-again.hg -q 2>&1 | egrep -v '^(\*\*| )'
216 $ hg bundle -R bundle.hg --base 1 bundle-again.hg -q 2>&1 | egrep -v '^(\*\*| )'
217 [1]
218 $ hg -R bundle-again.hg log --stat -T '{rev} {desc}\n' base64 2>&1 | egrep -v '^(\*\*| )'
195 Traceback (most recent call last):
219 Traceback (most recent call last):
196 mercurial.mpatch.mpatchError: invalid patch
220 TypeError: Incorrect padding
197 $ hg -R bundle-again.hg log --stat -T '{rev} {desc}\n' base64 2>&1 | egrep -v '^(\*\*| )'
198 abort: repository bundle-again.hg not found!
General Comments 0
You need to be logged in to leave comments. Login now