Show More
@@ -160,20 +160,11 b' class manifest(revlog.revlog):' | |||
|
160 | 160 | return revlog.bin(n[:40]), n[40:-1] |
|
161 | 161 | |
|
162 | 162 | def add(self, map, transaction, link, p1, p2, added, removed): |
|
163 | # if we're using the cache, make sure it is valid and | |
|
164 | # parented by the same node we're diffing against | |
|
165 | if not (p1 and (p1 in self._mancache)): | |
|
166 | files = sorted(map) | |
|
167 | _checkforbidden(files) | |
|
168 | ||
|
169 | # if this is changed to support newlines in filenames, | |
|
170 | # be sure to check the templates/ dir again (especially *-raw.tmpl) | |
|
171 | hex, flags = revlog.hex, map.flags | |
|
172 | text = ''.join("%s\0%s%s\n" % (f, hex(map[f]), flags(f)) | |
|
173 | for f in files) | |
|
174 | arraytext = array.array('c', text) | |
|
175 | cachedelta = None | |
|
176 | else: | |
|
163 | if p1 in self._mancache: | |
|
164 | # If our first parent is in the manifest cache, we can | |
|
165 | # compute a delta here using properties we know about the | |
|
166 | # manifest up-front, which may save time later for the | |
|
167 | # revlog layer. | |
|
177 | 168 | addlist = self._mancache[p1][1] |
|
178 | 169 | |
|
179 | 170 | _checkforbidden(added) |
@@ -224,6 +215,21 b' class manifest(revlog.revlog):' | |||
|
224 | 215 | cachedelta = (self.rev(p1), deltatext) |
|
225 | 216 | arraytext = addlist |
|
226 | 217 | text = util.buffer(arraytext) |
|
218 | else: | |
|
219 | # The first parent manifest isn't already loaded, so we'll | |
|
220 | # just encode a fulltext of the manifest and pass that | |
|
221 | # through to the revlog layer, and let it handle the delta | |
|
222 | # process. | |
|
223 | files = sorted(map) | |
|
224 | _checkforbidden(files) | |
|
225 | ||
|
226 | # if this is changed to support newlines in filenames, | |
|
227 | # be sure to check the templates/ dir again (especially *-raw.tmpl) | |
|
228 | hex, flags = revlog.hex, map.flags | |
|
229 | text = ''.join("%s\0%s%s\n" % (f, hex(map[f]), flags(f)) | |
|
230 | for f in files) | |
|
231 | arraytext = array.array('c', text) | |
|
232 | cachedelta = None | |
|
227 | 233 | |
|
228 | 234 | n = self.addrevision(text, transaction, link, p1, p2, cachedelta) |
|
229 | 235 | self._mancache[n] = (map, arraytext) |
General Comments 0
You need to be logged in to leave comments.
Login now