##// END OF EJS Templates
remotefilelog: bump pack file formats to version 2...
Augie Fackler -
r40541:10c10da1 default
parent child Browse files
Show More
@@ -260,7 +260,7 b' class basepackstore(object):'
260 260 class versionmixin(object):
261 261 # Mix-in for classes with multiple supported versions
262 262 VERSION = None
263 SUPPORTED_VERSIONS = [0]
263 SUPPORTED_VERSIONS = [2]
264 264
265 265 def _checkversion(self, version):
266 266 if version in self.SUPPORTED_VERSIONS:
@@ -277,7 +277,7 b' class basepack(versionmixin):'
277 277 # pages can be released (100MB)
278 278 MAXPAGEDIN = 100 * 1024**2
279 279
280 SUPPORTED_VERSIONS = [0]
280 SUPPORTED_VERSIONS = [2]
281 281
282 282 def __init__(self, path):
283 283 self.path = path
@@ -315,12 +315,9 b' class basepack(versionmixin):'
315 315
316 316 @util.propertycache
317 317 def _indexend(self):
318 if self.VERSION == 0:
319 return self.indexsize
320 else:
321 nodecount = struct.unpack_from('!Q', self._index,
322 self.params.indexstart - 8)[0]
323 return self.params.indexstart + nodecount * self.INDEXENTRYLENGTH
318 nodecount = struct.unpack_from('!Q', self._index,
319 self.params.indexstart - 8)[0]
320 return self.params.indexstart + nodecount * self.INDEXENTRYLENGTH
324 321
325 322 def freememory(self):
326 323 """Unmap and remap the memory to free it up after known expensive
@@ -361,9 +358,10 b' class basepack(versionmixin):'
361 358
362 359 class mutablebasepack(versionmixin):
363 360
364 def __init__(self, ui, packdir, version=0):
361 def __init__(self, ui, packdir, version=2):
365 362 self._checkversion(version)
366
363 # TODO(augie): make this configurable
364 self._compressor = 'GZ'
367 365 opener = vfsmod.vfs(packdir)
368 366 opener.createmode = 0o444
369 367 self.opener = opener
@@ -496,8 +494,7 b' class mutablebasepack(versionmixin):'
496 494
497 495 self._writeheader(params)
498 496 self.idxfp.write(rawfanouttable)
499 if self.VERSION == 1:
500 self.idxfp.write(rawentrieslength)
497 self.idxfp.write(rawentrieslength)
501 498 self.idxfp.write(rawindex)
502 499 self.idxfp.close()
503 500
@@ -538,6 +535,5 b' class indexparams(object):'
538 535 self.fanoutsize = self.fanoutcount * 4
539 536
540 537 self.indexstart = FANOUTSTART + self.fanoutsize
541 if version == 1:
542 # Skip the index length
543 self.indexstart += 8
538 # Skip the index length
539 self.indexstart += 8
@@ -5,7 +5,6 b' import struct'
5 5 from mercurial.node import hex, nullid
6 6 from mercurial.i18n import _
7 7 from mercurial import (
8 error,
9 8 pycompat,
10 9 util,
11 10 )
@@ -95,7 +94,7 b' class datapack(basepack.basepack):'
95 94 INDEXFORMAT = '!20siQQ'
96 95 INDEXENTRYLENGTH = 40
97 96
98 SUPPORTED_VERSIONS = [0, 1]
97 SUPPORTED_VERSIONS = [2]
99 98
100 99 def getmissing(self, keys):
101 100 missing = []
@@ -115,10 +114,6 b' class datapack(basepack.basepack):'
115 114 if value is None:
116 115 raise KeyError((name, hex(node)))
117 116
118 # version 0 does not support metadata
119 if self.VERSION == 0:
120 return {}
121
122 117 node, deltabaseoffset, offset, size = value
123 118 rawentry = self._data[offset:offset + size]
124 119
@@ -203,14 +198,11 b' class datapack(basepack.basepack):'
203 198 delta = lz4wrapper.lz4decompress(delta)
204 199
205 200 if getmeta:
206 if self.VERSION == 0:
207 meta = {}
208 else:
209 metastart = deltastart + 8 + deltalen
210 metalen = struct.unpack_from('!I', rawentry, metastart)[0]
201 metastart = deltastart + 8 + deltalen
202 metalen = struct.unpack_from('!I', rawentry, metastart)[0]
211 203
212 rawmeta = rawentry[metastart + 4:metastart + 4 + metalen]
213 meta = shallowutil.parsepackmeta(rawmeta)
204 rawmeta = rawentry[metastart + 4:metastart + 4 + metalen]
205 meta = shallowutil.parsepackmeta(rawmeta)
214 206 return filename, node, deltabasenode, delta, meta
215 207 else:
216 208 return filename, node, deltabasenode, delta
@@ -316,10 +308,9 b' class datapack(basepack.basepack):'
316 308 uncompressedlen = struct.unpack('<I', data[offset:offset + 4])[0]
317 309 offset += deltalen
318 310
319 if self.VERSION == 1:
320 # <4 byte len> + <metadata-list>
321 metalen = struct.unpack_from('!I', data, offset)[0]
322 offset += 4 + metalen
311 # <4 byte len> + <metadata-list>
312 metalen = struct.unpack_from('!I', data, offset)[0]
313 offset += 4 + metalen
323 314
324 315 yield (filename, node, deltabase, uncompressedlen)
325 316
@@ -406,7 +397,7 b' class mutabledatapack(basepack.mutableba'
406 397 INDEXENTRYLENGTH = datapack.INDEXENTRYLENGTH
407 398
408 399 # v1 has metadata support
409 SUPPORTED_VERSIONS = [0, 1]
400 SUPPORTED_VERSIONS = [2]
410 401
411 402 def add(self, name, node, deltabasenode, delta, metadata=None):
412 403 # metadata is a dict, ex. {METAKEYFLAG: flag}
@@ -431,15 +422,10 b' class mutabledatapack(basepack.mutableba'
431 422 delta,
432 423 ))
433 424
434 if self.VERSION == 1:
435 # v1 support metadata
436 rawmeta = shallowutil.buildpackmeta(metadata)
437 rawdata += struct.pack('!I', len(rawmeta)) # unsigned 4 byte
438 rawdata += rawmeta
439 else:
440 # v0 cannot store metadata, raise if metadata contains flag
441 if metadata and metadata.get(constants.METAKEYFLAG, 0) != 0:
442 raise error.ProgrammingError('v0 pack cannot store flags')
425 # v1 support metadata
426 rawmeta = shallowutil.buildpackmeta(metadata)
427 rawdata += struct.pack('!I', len(rawmeta)) # unsigned 4 byte
428 rawdata += rawmeta
443 429
444 430 offset = self.packfp.tell()
445 431
@@ -15,10 +15,8 b' from . import ('
15 15 )
16 16
17 17 # (filename hash, offset, size)
18 INDEXFORMAT0 = '!20sQQ'
19 INDEXENTRYLENGTH0 = struct.calcsize(INDEXFORMAT0)
20 INDEXFORMAT1 = '!20sQQII'
21 INDEXENTRYLENGTH1 = struct.calcsize(INDEXFORMAT1)
18 INDEXFORMAT2 = '!20sQQII'
19 INDEXENTRYLENGTH2 = struct.calcsize(INDEXFORMAT2)
22 20 NODELENGTH = 20
23 21
24 22 NODEINDEXFORMAT = '!20sQ'
@@ -84,17 +82,12 b' class historypack(basepack.basepack):'
84 82 INDEXSUFFIX = INDEXSUFFIX
85 83 PACKSUFFIX = PACKSUFFIX
86 84
87 SUPPORTED_VERSIONS = [0, 1]
85 SUPPORTED_VERSIONS = [2]
88 86
89 87 def __init__(self, path):
90 88 super(historypack, self).__init__(path)
91
92 if self.VERSION == 0:
93 self.INDEXFORMAT = INDEXFORMAT0
94 self.INDEXENTRYLENGTH = INDEXENTRYLENGTH0
95 else:
96 self.INDEXFORMAT = INDEXFORMAT1
97 self.INDEXENTRYLENGTH = INDEXENTRYLENGTH1
89 self.INDEXFORMAT = INDEXFORMAT2
90 self.INDEXENTRYLENGTH = INDEXENTRYLENGTH2
98 91
99 92 def getmissing(self, keys):
100 93 missing = []
@@ -215,22 +208,17 b' class historypack(basepack.basepack):'
215 208 raise KeyError(name)
216 209
217 210 rawentry = struct.unpack(self.INDEXFORMAT, entry)
218 if self.VERSION == 0:
219 x, offset, size = rawentry
220 nodeindexoffset = None
221 nodeindexsize = None
222 else:
223 x, offset, size, nodeindexoffset, nodeindexsize = rawentry
224 rawnamelen = self._index[nodeindexoffset:nodeindexoffset +
225 constants.FILENAMESIZE]
226 actualnamelen = struct.unpack('!H', rawnamelen)[0]
227 nodeindexoffset += constants.FILENAMESIZE
228 actualname = self._index[nodeindexoffset:nodeindexoffset +
229 actualnamelen]
230 if actualname != name:
231 raise KeyError("found file name %s when looking for %s" %
232 (actualname, name))
233 nodeindexoffset += actualnamelen
211 x, offset, size, nodeindexoffset, nodeindexsize = rawentry
212 rawnamelen = self._index[nodeindexoffset:nodeindexoffset +
213 constants.FILENAMESIZE]
214 actualnamelen = struct.unpack('!H', rawnamelen)[0]
215 nodeindexoffset += constants.FILENAMESIZE
216 actualname = self._index[nodeindexoffset:nodeindexoffset +
217 actualnamelen]
218 if actualname != name:
219 raise KeyError("found file name %s when looking for %s" %
220 (actualname, name))
221 nodeindexoffset += actualnamelen
234 222
235 223 filenamelength = struct.unpack('!H', self._data[offset:offset +
236 224 constants.FILENAMESIZE])[0]
@@ -406,24 +394,16 b' class mutablehistorypack(basepack.mutabl'
406 394 INDEXSUFFIX = INDEXSUFFIX
407 395 PACKSUFFIX = PACKSUFFIX
408 396
409 SUPPORTED_VERSIONS = [0, 1]
397 SUPPORTED_VERSIONS = [2]
410 398
411 def __init__(self, ui, packpath, version=0):
412 # internal config: remotefilelog.historypackv1
413 if version == 0 and ui.configbool('remotefilelog', 'historypackv1'):
414 version = 1
415
399 def __init__(self, ui, packpath, version=2):
416 400 super(mutablehistorypack, self).__init__(ui, packpath, version=version)
417 401 self.files = {}
418 402 self.entrylocations = {}
419 403 self.fileentries = {}
420 404
421 if version == 0:
422 self.INDEXFORMAT = INDEXFORMAT0
423 self.INDEXENTRYLENGTH = INDEXENTRYLENGTH0
424 else:
425 self.INDEXFORMAT = INDEXFORMAT1
426 self.INDEXENTRYLENGTH = INDEXENTRYLENGTH1
405 self.INDEXFORMAT = INDEXFORMAT2
406 self.INDEXENTRYLENGTH = INDEXENTRYLENGTH2
427 407
428 408 self.NODEINDEXFORMAT = NODEINDEXFORMAT
429 409 self.NODEINDEXENTRYLENGTH = NODEINDEXENTRYLENGTH
@@ -499,7 +479,6 b' class mutablehistorypack(basepack.mutabl'
499 479 fileindexlength = self.INDEXENTRYLENGTH
500 480 nodeindexformat = self.NODEINDEXFORMAT
501 481 nodeindexlength = self.NODEINDEXENTRYLENGTH
502 version = self.VERSION
503 482
504 483 files = ((hashlib.sha1(filename).digest(), filename, offset, size)
505 484 for filename, (offset, size) in self.files.iteritems())
@@ -515,31 +494,27 b' class mutablehistorypack(basepack.mutabl'
515 494 nodecount = 0
516 495 for namehash, filename, offset, size in files:
517 496 # File section index
518 if version == 0:
519 rawentry = struct.pack(fileindexformat, namehash, offset, size)
520 else:
521 nodelocations = self.entrylocations[filename]
497 nodelocations = self.entrylocations[filename]
522 498
523 nodeindexsize = len(nodelocations) * nodeindexlength
499 nodeindexsize = len(nodelocations) * nodeindexlength
524 500
525 rawentry = struct.pack(fileindexformat, namehash, offset, size,
526 nodeindexoffset, nodeindexsize)
527 # Node index
528 nodeindexentries.append(struct.pack(constants.FILENAMESTRUCT,
529 len(filename)) + filename)
530 nodeindexoffset += constants.FILENAMESIZE + len(filename)
501 rawentry = struct.pack(fileindexformat, namehash, offset, size,
502 nodeindexoffset, nodeindexsize)
503 # Node index
504 nodeindexentries.append(struct.pack(constants.FILENAMESTRUCT,
505 len(filename)) + filename)
506 nodeindexoffset += constants.FILENAMESIZE + len(filename)
531 507
532 for node, location in sorted(nodelocations.iteritems()):
533 nodeindexentries.append(struct.pack(nodeindexformat, node,
534 location))
535 nodecount += 1
508 for node, location in sorted(nodelocations.iteritems()):
509 nodeindexentries.append(struct.pack(nodeindexformat, node,
510 location))
511 nodecount += 1
536 512
537 nodeindexoffset += len(nodelocations) * nodeindexlength
513 nodeindexoffset += len(nodelocations) * nodeindexlength
538 514
539 515 fileindexentries.append(rawentry)
540 516
541 517 nodecountraw = ''
542 if version == 1:
543 nodecountraw = struct.pack('!Q', nodecount)
518 nodecountraw = struct.pack('!Q', nodecount)
544 519 return (''.join(fileindexentries) + nodecountraw +
545 520 ''.join(nodeindexentries))
@@ -345,10 +345,7 b' def _runrepack(repo, data, history, pack'
345 345 packer = repacker(repo, data, history, fullhistory, category,
346 346 gc=garbagecollect, isold=isold, options=options)
347 347
348 # internal config: remotefilelog.datapackversion
349 dv = repo.ui.configint('remotefilelog', 'datapackversion', 0)
350
351 with datapack.mutabledatapack(repo.ui, packpath, version=dv) as dpack:
348 with datapack.mutabledatapack(repo.ui, packpath, version=2) as dpack:
352 349 with historypack.mutablehistorypack(repo.ui, packpath) as hpack:
353 350 try:
354 351 packer.run(dpack, hpack)
@@ -107,10 +107,10 b''
107 107 $ sleep 0.5
108 108 $ hg debugwaitonrepack >/dev/null 2>%1
109 109 $ find $CACHEDIR -type f | sort
110 $TESTTMP/hgcache/master/packs/94d53eef9e622533aec1fc6d8053cb086e785d21.histidx
111 $TESTTMP/hgcache/master/packs/94d53eef9e622533aec1fc6d8053cb086e785d21.histpack
112 $TESTTMP/hgcache/master/packs/f3644bc7773e8289deda7f765138120c838f4e6e.dataidx
113 $TESTTMP/hgcache/master/packs/f3644bc7773e8289deda7f765138120c838f4e6e.datapack
110 $TESTTMP/hgcache/master/packs/3616094d229ed39e2593f79c772676d4ec00253a.dataidx
111 $TESTTMP/hgcache/master/packs/3616094d229ed39e2593f79c772676d4ec00253a.datapack
112 $TESTTMP/hgcache/master/packs/6e8633deba6e544e5f8edbd7b996d6e31a2c42ae.histidx
113 $TESTTMP/hgcache/master/packs/6e8633deba6e544e5f8edbd7b996d6e31a2c42ae.histpack
114 114 $TESTTMP/hgcache/master/packs/repacklock
115 115 $TESTTMP/hgcache/repos
116 116
@@ -143,10 +143,10 b''
143 143 $ sleep 1
144 144 $ hg debugwaitonrepack >/dev/null 2>%1
145 145 $ find $CACHEDIR -type f | sort
146 $TESTTMP/hgcache/master/packs/27c52c105a1ddf8c75143a6b279b04c24b1f4bee.histidx
147 $TESTTMP/hgcache/master/packs/27c52c105a1ddf8c75143a6b279b04c24b1f4bee.histpack
148 $TESTTMP/hgcache/master/packs/8299d5a1030f073f4adbb3b6bd2ad3bdcc276df0.dataidx
149 $TESTTMP/hgcache/master/packs/8299d5a1030f073f4adbb3b6bd2ad3bdcc276df0.datapack
146 $TESTTMP/hgcache/master/packs/8f1443d44e57fec96f72fb2412e01d2818767ef2.histidx
147 $TESTTMP/hgcache/master/packs/8f1443d44e57fec96f72fb2412e01d2818767ef2.histpack
148 $TESTTMP/hgcache/master/packs/ac19aff076286bebe3ff108c96c6445a0fe27c46.dataidx
149 $TESTTMP/hgcache/master/packs/ac19aff076286bebe3ff108c96c6445a0fe27c46.datapack
150 150 $TESTTMP/hgcache/master/packs/repacklock
151 151 $TESTTMP/hgcache/repos
152 152
@@ -154,7 +154,7 b''
154 154 # could only be downloaded by the background prefetch
155 155
156 156 $ hg debugdatapack `ls -ct $TESTTMP/hgcache/master/packs/*.datapack | head -n 1`
157 $TESTTMP/hgcache/master/packs/8299d5a1030f073f4adbb3b6bd2ad3bdcc276df0:
157 $TESTTMP/hgcache/master/packs/ac19aff076286bebe3ff108c96c6445a0fe27c46:
158 158 w:
159 159 Node Delta Base Delta Length Blob Size
160 160 bb6ccd5dceaa 000000000000 2 2
@@ -195,10 +195,10 b''
195 195 $ sleep 1
196 196 $ hg debugwaitonrepack >/dev/null 2>%1
197 197 $ find $CACHEDIR -type f | sort
198 $TESTTMP/hgcache/master/packs/27c52c105a1ddf8c75143a6b279b04c24b1f4bee.histidx
199 $TESTTMP/hgcache/master/packs/27c52c105a1ddf8c75143a6b279b04c24b1f4bee.histpack
200 $TESTTMP/hgcache/master/packs/8299d5a1030f073f4adbb3b6bd2ad3bdcc276df0.dataidx
201 $TESTTMP/hgcache/master/packs/8299d5a1030f073f4adbb3b6bd2ad3bdcc276df0.datapack
198 $TESTTMP/hgcache/master/packs/8f1443d44e57fec96f72fb2412e01d2818767ef2.histidx
199 $TESTTMP/hgcache/master/packs/8f1443d44e57fec96f72fb2412e01d2818767ef2.histpack
200 $TESTTMP/hgcache/master/packs/ac19aff076286bebe3ff108c96c6445a0fe27c46.dataidx
201 $TESTTMP/hgcache/master/packs/ac19aff076286bebe3ff108c96c6445a0fe27c46.datapack
202 202 $TESTTMP/hgcache/master/packs/repacklock
203 203 $TESTTMP/hgcache/repos
204 204
@@ -206,7 +206,7 b''
206 206 # could only be downloaded by the background prefetch
207 207
208 208 $ hg debugdatapack `ls -ct $TESTTMP/hgcache/master/packs/*.datapack | head -n 1`
209 $TESTTMP/hgcache/master/packs/8299d5a1030f073f4adbb3b6bd2ad3bdcc276df0:
209 $TESTTMP/hgcache/master/packs/ac19aff076286bebe3ff108c96c6445a0fe27c46:
210 210 w:
211 211 Node Delta Base Delta Length Blob Size
212 212 bb6ccd5dceaa 000000000000 2 2
@@ -249,7 +249,7 b''
249 249 # could only be downloaded by the background prefetch
250 250
251 251 $ hg debugdatapack `ls -ct $TESTTMP/hgcache/master/packs/*.datapack | head -n 1`
252 $TESTTMP/hgcache/master/packs/8299d5a1030f073f4adbb3b6bd2ad3bdcc276df0:
252 $TESTTMP/hgcache/master/packs/ac19aff076286bebe3ff108c96c6445a0fe27c46:
253 253 w:
254 254 Node Delta Base Delta Length Blob Size
255 255 bb6ccd5dceaa 000000000000 2 2
@@ -287,16 +287,16 b''
287 287 $ hg debugwaitonrepack >/dev/null 2>%1
288 288
289 289 $ find $CACHEDIR -type f | sort
290 $TESTTMP/hgcache/master/packs/27c52c105a1ddf8c75143a6b279b04c24b1f4bee.histidx
291 $TESTTMP/hgcache/master/packs/27c52c105a1ddf8c75143a6b279b04c24b1f4bee.histpack
292 $TESTTMP/hgcache/master/packs/8299d5a1030f073f4adbb3b6bd2ad3bdcc276df0.dataidx
293 $TESTTMP/hgcache/master/packs/8299d5a1030f073f4adbb3b6bd2ad3bdcc276df0.datapack
290 $TESTTMP/hgcache/master/packs/8f1443d44e57fec96f72fb2412e01d2818767ef2.histidx
291 $TESTTMP/hgcache/master/packs/8f1443d44e57fec96f72fb2412e01d2818767ef2.histpack
292 $TESTTMP/hgcache/master/packs/ac19aff076286bebe3ff108c96c6445a0fe27c46.dataidx
293 $TESTTMP/hgcache/master/packs/ac19aff076286bebe3ff108c96c6445a0fe27c46.datapack
294 294 $TESTTMP/hgcache/master/packs/repacklock
295 295 $TESTTMP/hgcache/repos
296 296
297 297 # Ensure that files were prefetched
298 298 $ hg debugdatapack `ls -ct $TESTTMP/hgcache/master/packs/*.datapack | head -n 1`
299 $TESTTMP/hgcache/master/packs/8299d5a1030f073f4adbb3b6bd2ad3bdcc276df0:
299 $TESTTMP/hgcache/master/packs/ac19aff076286bebe3ff108c96c6445a0fe27c46:
300 300 w:
301 301 Node Delta Base Delta Length Blob Size
302 302 bb6ccd5dceaa 000000000000 2 2
@@ -331,16 +331,16 b''
331 331 $ hg debugwaitonrepack >/dev/null 2>%1
332 332
333 333 $ find $CACHEDIR -type f | sort
334 $TESTTMP/hgcache/master/packs/27c52c105a1ddf8c75143a6b279b04c24b1f4bee.histidx
335 $TESTTMP/hgcache/master/packs/27c52c105a1ddf8c75143a6b279b04c24b1f4bee.histpack
336 $TESTTMP/hgcache/master/packs/8299d5a1030f073f4adbb3b6bd2ad3bdcc276df0.dataidx
337 $TESTTMP/hgcache/master/packs/8299d5a1030f073f4adbb3b6bd2ad3bdcc276df0.datapack
334 $TESTTMP/hgcache/master/packs/8f1443d44e57fec96f72fb2412e01d2818767ef2.histidx
335 $TESTTMP/hgcache/master/packs/8f1443d44e57fec96f72fb2412e01d2818767ef2.histpack
336 $TESTTMP/hgcache/master/packs/ac19aff076286bebe3ff108c96c6445a0fe27c46.dataidx
337 $TESTTMP/hgcache/master/packs/ac19aff076286bebe3ff108c96c6445a0fe27c46.datapack
338 338 $TESTTMP/hgcache/master/packs/repacklock
339 339 $TESTTMP/hgcache/repos
340 340
341 341 # Ensure that files were prefetched
342 342 $ hg debugdatapack `ls -ct $TESTTMP/hgcache/master/packs/*.datapack | head -n 1`
343 $TESTTMP/hgcache/master/packs/8299d5a1030f073f4adbb3b6bd2ad3bdcc276df0:
343 $TESTTMP/hgcache/master/packs/ac19aff076286bebe3ff108c96c6445a0fe27c46:
344 344 w:
345 345 Node Delta Base Delta Length Blob Size
346 346 bb6ccd5dceaa 000000000000 2 2
@@ -49,15 +49,14 b' class datapacktestsbase(object):'
49 49 def getFakeHash(self):
50 50 return ''.join(chr(random.randint(0, 255)) for _ in range(20))
51 51
52 def createPack(self, revisions=None, packdir=None, version=0):
52 def createPack(self, revisions=None, packdir=None):
53 53 if revisions is None:
54 54 revisions = [("filename", self.getFakeHash(), nullid, "content")]
55 55
56 56 if packdir is None:
57 57 packdir = self.makeTempDir()
58 58
59 packer = datapack.mutabledatapack(
60 uimod.ui(), packdir, version=version)
59 packer = datapack.mutabledatapack(uimod.ui(), packdir, version=2)
61 60
62 61 for args in revisions:
63 62 filename, node, base, content = args[0:4]
@@ -175,7 +174,7 b' class datapacktestsbase(object):'
175 174 'Z': 'random_string',
176 175 '_': '\0' * i}
177 176 revisions.append((filename, node, nullid, content, meta))
178 pack = self.createPack(revisions, version=1)
177 pack = self.createPack(revisions)
179 178 for name, node, x, content, origmeta in revisions:
180 179 parsedmeta = pack.getmeta(name, node)
181 180 # flag == 0 should be optimized out
@@ -183,18 +182,6 b' class datapacktestsbase(object):'
183 182 del origmeta[constants.METAKEYFLAG]
184 183 self.assertEquals(parsedmeta, origmeta)
185 184
186 def testPackMetadataThrows(self):
187 filename = '1'
188 content = '2'
189 node = self.getHash(content)
190 meta = {constants.METAKEYFLAG: 3}
191 revisions = [(filename, node, nullid, content, meta)]
192 try:
193 self.createPack(revisions, version=0)
194 self.assertTrue(False, "should throw if metadata is not supported")
195 except RuntimeError:
196 pass
197
198 185 def testGetMissing(self):
199 186 """Test the getmissing() api.
200 187 """
@@ -90,10 +90,10 b''
90 90
91 91 # Ensure that loose files are repacked
92 92 $ find $CACHEDIR -type f | sort
93 $TESTTMP/hgcache/master/packs/8d3499c65d926e4f107cf03c6b0df833222025b4.histidx
94 $TESTTMP/hgcache/master/packs/8d3499c65d926e4f107cf03c6b0df833222025b4.histpack
95 $TESTTMP/hgcache/master/packs/9c7046f8cad0417c39aa7c03ce13e0ba991306c2.dataidx
96 $TESTTMP/hgcache/master/packs/9c7046f8cad0417c39aa7c03ce13e0ba991306c2.datapack
93 $TESTTMP/hgcache/master/packs/173691d550fabb9d33db8da192f1c9bc62dd11a4.dataidx
94 $TESTTMP/hgcache/master/packs/173691d550fabb9d33db8da192f1c9bc62dd11a4.datapack
95 $TESTTMP/hgcache/master/packs/837b83c1ef6485a336eb4421ac5973c0ec130fbb.histidx
96 $TESTTMP/hgcache/master/packs/837b83c1ef6485a336eb4421ac5973c0ec130fbb.histpack
97 97 $TESTTMP/hgcache/master/packs/repacklock
98 98 $TESTTMP/hgcache/repos
99 99
@@ -45,13 +45,13 b''
45 45 $ hg debugwaitonrepack >/dev/null 2>%1
46 46
47 47 $ find $CACHEDIR | sort | grep ".datapack\|.histpack"
48 $TESTTMP/hgcache/master/packs/9a2ea858fe2967db9b6ea4c0ca238881cae9d6eb.histpack
49 $TESTTMP/hgcache/master/packs/f7a942a6e4673d2c7b697fdd926ca2d153831ca4.datapack
48 $TESTTMP/hgcache/master/packs/7bcd2d90b99395ca43172a0dd24e18860b2902f9.histpack
49 $TESTTMP/hgcache/master/packs/be1bfed71a51645d8c3b9dc73e234e3a8ff06ac1.datapack
50 50
51 51 # Ensure that all file versions were prefetched
52 52
53 53 $ hg debugdatapack `ls -ct $TESTTMP/hgcache/master/packs/*.datapack | head -n 1`
54 $TESTTMP/hgcache/master/packs/f7a942a6e4673d2c7b697fdd926ca2d153831ca4:
54 $TESTTMP/hgcache/master/packs/be1bfed71a51645d8c3b9dc73e234e3a8ff06ac1:
55 55 x:
56 56 Node Delta Base Delta Length Blob Size
57 57 1406e7411862 000000000000 2 2
@@ -78,14 +78,14 b''
78 78 $ hg debugwaitonrepack >/dev/null 2>%1
79 79
80 80 $ find $CACHEDIR | sort | grep ".datapack\|.histpack"
81 $TESTTMP/hgcache/master/packs/05baa499c6b07f2bf0ea3d2c8151da1cb86f5e33.datapack
82 $TESTTMP/hgcache/master/packs/9a2ea858fe2967db9b6ea4c0ca238881cae9d6eb.histpack
81 $TESTTMP/hgcache/master/packs/7bcd2d90b99395ca43172a0dd24e18860b2902f9.histpack
82 $TESTTMP/hgcache/master/packs/b868298fad9bf477b4e9d9455226c440b0135fe6.datapack
83 83
84 84 # Ensure that file 'x' was garbage collected. It should be GCed because it is not in the keepset
85 85 # and is old (commit date is 0.0 in tests). Ensure that file 'y' is present as it is in the keepset.
86 86
87 87 $ hg debugdatapack `ls -ct $TESTTMP/hgcache/master/packs/*.datapack | head -n 1`
88 $TESTTMP/hgcache/master/packs/05baa499c6b07f2bf0ea3d2c8151da1cb86f5e33:
88 $TESTTMP/hgcache/master/packs/b868298fad9bf477b4e9d9455226c440b0135fe6:
89 89 y:
90 90 Node Delta Base Delta Length Blob Size
91 91 50dbc4572b8e 000000000000 3 3
@@ -106,13 +106,13 b''
106 106 $ hg debugwaitonrepack >/dev/null 2>%1
107 107
108 108 $ find $CACHEDIR | sort | grep ".datapack\|.histpack"
109 $TESTTMP/hgcache/master/packs/9a2ea858fe2967db9b6ea4c0ca238881cae9d6eb.histpack
110 $TESTTMP/hgcache/master/packs/f7a942a6e4673d2c7b697fdd926ca2d153831ca4.datapack
109 $TESTTMP/hgcache/master/packs/7bcd2d90b99395ca43172a0dd24e18860b2902f9.histpack
110 $TESTTMP/hgcache/master/packs/be1bfed71a51645d8c3b9dc73e234e3a8ff06ac1.datapack
111 111
112 112 # Ensure that all file versions were prefetched
113 113
114 114 $ hg debugdatapack `ls -ct $TESTTMP/hgcache/master/packs/*.datapack | head -n 1`
115 $TESTTMP/hgcache/master/packs/f7a942a6e4673d2c7b697fdd926ca2d153831ca4:
115 $TESTTMP/hgcache/master/packs/be1bfed71a51645d8c3b9dc73e234e3a8ff06ac1:
116 116 x:
117 117 Node Delta Base Delta Length Blob Size
118 118 1406e7411862 000000000000 2 2
@@ -140,13 +140,13 b''
140 140 $ hg debugwaitonrepack >/dev/null 2>%1
141 141
142 142 $ find $CACHEDIR | sort | grep ".datapack\|.histpack"
143 $TESTTMP/hgcache/master/packs/9a2ea858fe2967db9b6ea4c0ca238881cae9d6eb.histpack
144 $TESTTMP/hgcache/master/packs/f7a942a6e4673d2c7b697fdd926ca2d153831ca4.datapack
143 $TESTTMP/hgcache/master/packs/7bcd2d90b99395ca43172a0dd24e18860b2902f9.histpack
144 $TESTTMP/hgcache/master/packs/be1bfed71a51645d8c3b9dc73e234e3a8ff06ac1.datapack
145 145
146 146 # Ensure that all file versions were prefetched
147 147
148 148 $ hg debugdatapack `ls -ct $TESTTMP/hgcache/master/packs/*.datapack | head -n 1`
149 $TESTTMP/hgcache/master/packs/f7a942a6e4673d2c7b697fdd926ca2d153831ca4:
149 $TESTTMP/hgcache/master/packs/be1bfed71a51645d8c3b9dc73e234e3a8ff06ac1:
150 150 x:
151 151 Node Delta Base Delta Length Blob Size
152 152 1406e7411862 000000000000 2 2
@@ -55,7 +55,7 b' class histpacktests(unittest.TestCase):'
55 55
56 56 packdir = self.makeTempDir()
57 57 packer = historypack.mutablehistorypack(uimod.ui(), packdir,
58 version=1)
58 version=2)
59 59
60 60 for filename, node, p1, p2, linknode, copyfrom in revisions:
61 61 packer.add(filename, node, p1, p2, linknode, copyfrom)
@@ -50,19 +50,19 b''
50 50 $TESTTMP/hgcache
51 51 $TESTTMP/hgcache/master
52 52 $TESTTMP/hgcache/master/packs
53 $TESTTMP/hgcache/master/packs/276d308429d0303762befa376788300f0310f90e.histidx
54 $TESTTMP/hgcache/master/packs/276d308429d0303762befa376788300f0310f90e.histpack
55 $TESTTMP/hgcache/master/packs/8e25dec685d5e0bb1f1b39df3acebda0e0d75c6e.dataidx
56 $TESTTMP/hgcache/master/packs/8e25dec685d5e0bb1f1b39df3acebda0e0d75c6e.datapack
53 $TESTTMP/hgcache/master/packs/1e91b207daf5d7b48f1be9c587d6b5ae654ce78c.histidx
54 $TESTTMP/hgcache/master/packs/1e91b207daf5d7b48f1be9c587d6b5ae654ce78c.histpack
55 $TESTTMP/hgcache/master/packs/add67cb28ae0a2962111588ce49467ca9ebb9195.dataidx
56 $TESTTMP/hgcache/master/packs/add67cb28ae0a2962111588ce49467ca9ebb9195.datapack
57 57 $TESTTMP/hgcache/master/packs/repacklock
58 58 $TESTTMP/hgcache/repos
59 59
60 60 # Test that the packs are readonly
61 61 $ ls_l $CACHEDIR/master/packs
62 -r--r--r-- 1145 276d308429d0303762befa376788300f0310f90e.histidx
63 -r--r--r-- 172 276d308429d0303762befa376788300f0310f90e.histpack
64 -r--r--r-- 1074 8e25dec685d5e0bb1f1b39df3acebda0e0d75c6e.dataidx
65 -r--r--r-- 69 8e25dec685d5e0bb1f1b39df3acebda0e0d75c6e.datapack
62 -r--r--r-- 1145 1e91b207daf5d7b48f1be9c587d6b5ae654ce78c.histidx
63 -r--r--r-- 172 1e91b207daf5d7b48f1be9c587d6b5ae654ce78c.histpack
64 -r--r--r-- 1074 add67cb28ae0a2962111588ce49467ca9ebb9195.dataidx
65 -r--r--r-- 69 add67cb28ae0a2962111588ce49467ca9ebb9195.datapack
66 66 -rw-r--r-- 0 repacklock
67 67
68 68 # Test that the data in the new packs is accessible
@@ -83,20 +83,20 b''
83 83
84 84 $ find $CACHEDIR -type f | sort
85 85 $TESTTMP/hgcache/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/d4a3ed9310e5bd9887e3bf779da5077efab28216
86 $TESTTMP/hgcache/master/packs/276d308429d0303762befa376788300f0310f90e.histidx
87 $TESTTMP/hgcache/master/packs/276d308429d0303762befa376788300f0310f90e.histpack
88 $TESTTMP/hgcache/master/packs/8e25dec685d5e0bb1f1b39df3acebda0e0d75c6e.dataidx
89 $TESTTMP/hgcache/master/packs/8e25dec685d5e0bb1f1b39df3acebda0e0d75c6e.datapack
86 $TESTTMP/hgcache/master/packs/1e91b207daf5d7b48f1be9c587d6b5ae654ce78c.histidx
87 $TESTTMP/hgcache/master/packs/1e91b207daf5d7b48f1be9c587d6b5ae654ce78c.histpack
88 $TESTTMP/hgcache/master/packs/add67cb28ae0a2962111588ce49467ca9ebb9195.dataidx
89 $TESTTMP/hgcache/master/packs/add67cb28ae0a2962111588ce49467ca9ebb9195.datapack
90 90 $TESTTMP/hgcache/master/packs/repacklock
91 91 $TESTTMP/hgcache/repos
92 92
93 93 $ hg repack --traceback
94 94
95 95 $ find $CACHEDIR -type f | sort
96 $TESTTMP/hgcache/master/packs/077e7ce5dfe862dc40cc8f3c9742d96a056865f2.histidx
97 $TESTTMP/hgcache/master/packs/077e7ce5dfe862dc40cc8f3c9742d96a056865f2.histpack
98 $TESTTMP/hgcache/master/packs/935861cae0be6ce41a0d47a529e4d097e9e68a69.dataidx
99 $TESTTMP/hgcache/master/packs/935861cae0be6ce41a0d47a529e4d097e9e68a69.datapack
96 $TESTTMP/hgcache/master/packs/1bd27e610ee06450e5f3bb0cd3afb6870e4cf375.dataidx
97 $TESTTMP/hgcache/master/packs/1bd27e610ee06450e5f3bb0cd3afb6870e4cf375.datapack
98 $TESTTMP/hgcache/master/packs/8abe7889aae389337d12ebe6085d4ee13854c7c9.histidx
99 $TESTTMP/hgcache/master/packs/8abe7889aae389337d12ebe6085d4ee13854c7c9.histpack
100 100 $TESTTMP/hgcache/master/packs/repacklock
101 101 $TESTTMP/hgcache/repos
102 102
@@ -113,10 +113,10 b''
113 113 # and did not change the pack names
114 114 $ hg repack
115 115 $ find $CACHEDIR -type f | sort
116 $TESTTMP/hgcache/master/packs/077e7ce5dfe862dc40cc8f3c9742d96a056865f2.histidx
117 $TESTTMP/hgcache/master/packs/077e7ce5dfe862dc40cc8f3c9742d96a056865f2.histpack
118 $TESTTMP/hgcache/master/packs/935861cae0be6ce41a0d47a529e4d097e9e68a69.dataidx
119 $TESTTMP/hgcache/master/packs/935861cae0be6ce41a0d47a529e4d097e9e68a69.datapack
116 $TESTTMP/hgcache/master/packs/1bd27e610ee06450e5f3bb0cd3afb6870e4cf375.dataidx
117 $TESTTMP/hgcache/master/packs/1bd27e610ee06450e5f3bb0cd3afb6870e4cf375.datapack
118 $TESTTMP/hgcache/master/packs/8abe7889aae389337d12ebe6085d4ee13854c7c9.histidx
119 $TESTTMP/hgcache/master/packs/8abe7889aae389337d12ebe6085d4ee13854c7c9.histpack
120 120 $TESTTMP/hgcache/master/packs/repacklock
121 121 $TESTTMP/hgcache/repos
122 122
@@ -137,10 +137,10 b''
137 137 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over * (glob)
138 138 $ find $CACHEDIR -type f | sort
139 139 $TESTTMP/hgcache/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/1bb2e6237e035c8f8ef508e281f1ce075bc6db72
140 $TESTTMP/hgcache/master/packs/077e7ce5dfe862dc40cc8f3c9742d96a056865f2.histidx
141 $TESTTMP/hgcache/master/packs/077e7ce5dfe862dc40cc8f3c9742d96a056865f2.histpack
142 $TESTTMP/hgcache/master/packs/935861cae0be6ce41a0d47a529e4d097e9e68a69.dataidx
143 $TESTTMP/hgcache/master/packs/935861cae0be6ce41a0d47a529e4d097e9e68a69.datapack
140 $TESTTMP/hgcache/master/packs/1bd27e610ee06450e5f3bb0cd3afb6870e4cf375.dataidx
141 $TESTTMP/hgcache/master/packs/1bd27e610ee06450e5f3bb0cd3afb6870e4cf375.datapack
142 $TESTTMP/hgcache/master/packs/8abe7889aae389337d12ebe6085d4ee13854c7c9.histidx
143 $TESTTMP/hgcache/master/packs/8abe7889aae389337d12ebe6085d4ee13854c7c9.histpack
144 144 $TESTTMP/hgcache/master/packs/repacklock
145 145 $TESTTMP/hgcache/repos
146 146
@@ -149,17 +149,17 b''
149 149 $ sleep 0.5
150 150 $ hg debugwaitonrepack >/dev/null 2>&1
151 151 $ find $CACHEDIR -type f | sort
152 $TESTTMP/hgcache/master/packs/094b530486dad4427a0faf6bcbc031571b99ca24.histidx
153 $TESTTMP/hgcache/master/packs/094b530486dad4427a0faf6bcbc031571b99ca24.histpack
154 $TESTTMP/hgcache/master/packs/8fe685c56f6f7edf550bfcec74eeecc5f3c2ba15.dataidx
155 $TESTTMP/hgcache/master/packs/8fe685c56f6f7edf550bfcec74eeecc5f3c2ba15.datapack
152 $TESTTMP/hgcache/master/packs/06ae46494f0e3b9beda53eae8fc0e55139f13123.dataidx
153 $TESTTMP/hgcache/master/packs/06ae46494f0e3b9beda53eae8fc0e55139f13123.datapack
154 $TESTTMP/hgcache/master/packs/604552d403a1381749faf656feca0ca265a6d52c.histidx
155 $TESTTMP/hgcache/master/packs/604552d403a1381749faf656feca0ca265a6d52c.histpack
156 156 $TESTTMP/hgcache/master/packs/repacklock
157 157 $TESTTMP/hgcache/repos
158 158
159 159 # Test debug commands
160 160
161 161 $ hg debugdatapack $TESTTMP/hgcache/master/packs/*.datapack
162 $TESTTMP/hgcache/master/packs/8fe685c56f6f7edf550bfcec74eeecc5f3c2ba15:
162 $TESTTMP/hgcache/master/packs/06ae46494f0e3b9beda53eae8fc0e55139f13123:
163 163 x:
164 164 Node Delta Base Delta Length Blob Size
165 165 1bb2e6237e03 000000000000 8 8
@@ -168,7 +168,7 b''
168 168
169 169 Total: 32 18 (77.8% bigger)
170 170 $ hg debugdatapack --long $TESTTMP/hgcache/master/packs/*.datapack
171 $TESTTMP/hgcache/master/packs/8fe685c56f6f7edf550bfcec74eeecc5f3c2ba15:
171 $TESTTMP/hgcache/master/packs/06ae46494f0e3b9beda53eae8fc0e55139f13123:
172 172 x:
173 173 Node Delta Base Delta Length Blob Size
174 174 1bb2e6237e035c8f8ef508e281f1ce075bc6db72 0000000000000000000000000000000000000000 8 8
@@ -177,7 +177,7 b''
177 177
178 178 Total: 32 18 (77.8% bigger)
179 179 $ hg debugdatapack $TESTTMP/hgcache/master/packs/*.datapack --node d4a3ed9310e5bd9887e3bf779da5077efab28216
180 $TESTTMP/hgcache/master/packs/8fe685c56f6f7edf550bfcec74eeecc5f3c2ba15:
180 $TESTTMP/hgcache/master/packs/06ae46494f0e3b9beda53eae8fc0e55139f13123:
181 181
182 182 x
183 183 Node Delta Base Delta SHA1 Delta Length
@@ -226,10 +226,10 b''
226 226 2 files fetched over 2 fetches - (2 misses, 0.00% hit ratio) over * (glob)
227 227 $ hg repack
228 228 $ ls $TESTTMP/hgcache/master/packs
229 e8fdf7ae22b772dcc291f905b9c6e5f381d28739.dataidx
230 e8fdf7ae22b772dcc291f905b9c6e5f381d28739.datapack
231 ebbd7411e00456c0eec8d1150a77e2b3ef490f3f.histidx
232 ebbd7411e00456c0eec8d1150a77e2b3ef490f3f.histpack
229 308a7aba9c54a0b71ae5adbbccd00c0aff20876e.dataidx
230 308a7aba9c54a0b71ae5adbbccd00c0aff20876e.datapack
231 bfd60adb76018bb952e27cd23fc151bf94865d7d.histidx
232 bfd60adb76018bb952e27cd23fc151bf94865d7d.histpack
233 233 repacklock
234 234 $ hg debughistorypack $TESTTMP/hgcache/master/packs/*.histidx
235 235
@@ -259,7 +259,7 b''
259 259 $ rm -rf $CACHEDIR/master/packs/*hist*
260 260 $ hg repack
261 261 $ hg debugdatapack $TESTTMP/hgcache/master/packs/*.datapack
262 $TESTTMP/hgcache/master/packs/a8d86ff8e1a11a77a85f5fea567f56a757583eda:
262 $TESTTMP/hgcache/master/packs/ba4649b56263282b0699f9a6e7e34a4a2bac1638:
263 263 x:
264 264 Node Delta Base Delta Length Blob Size
265 265 1bb2e6237e03 000000000000 8 8
@@ -296,9 +296,9 b' Single pack - repack does nothing'
296 296 [1]
297 297 $ hg repack --incremental
298 298 $ ls_l $TESTTMP/hgcache/master/packs/ | grep datapack
299 -r--r--r-- 67 b5a62f3496ccbd2479497cdbc7345f3304735f33.datapack
299 -r--r--r-- 67 6409c5a1d61b251906689d4d1282ac44df6a7898.datapack
300 300 $ ls_l $TESTTMP/hgcache/master/packs/ | grep histpack
301 -r--r--r-- 90 c3399b56e035f73c3295276ed098235a08a0ed8c.histpack
301 -r--r--r-- 90 955a622173324b2d8b53e1147f209f1cf125302e.histpack
302 302
303 303 3 gen1 packs, 1 gen0 pack - packs 3 gen1 into 1
304 304 $ hg prefetch -r 1
@@ -308,25 +308,25 b' 3 gen1 packs, 1 gen0 pack - packs 3 gen1'
308 308 $ hg prefetch -r 3
309 309 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over * (glob)
310 310 $ ls_l $TESTTMP/hgcache/master/packs/ | grep datapack
311 -r--r--r-- 67 b5a62f3496ccbd2479497cdbc7345f3304735f33.datapack
311 -r--r--r-- 67 6409c5a1d61b251906689d4d1282ac44df6a7898.datapack
312 312 $ ls_l $TESTTMP/hgcache/master/packs/ | grep histpack
313 -r--r--r-- 90 c3399b56e035f73c3295276ed098235a08a0ed8c.histpack
313 -r--r--r-- 90 955a622173324b2d8b53e1147f209f1cf125302e.histpack
314 314 $ hg repack --incremental
315 315 $ ls_l $TESTTMP/hgcache/master/packs/ | grep datapack
316 -r--r--r-- 225 8fe685c56f6f7edf550bfcec74eeecc5f3c2ba15.datapack
317 -r--r--r-- 67 b5a62f3496ccbd2479497cdbc7345f3304735f33.datapack
316 -r--r--r-- 225 06ae46494f0e3b9beda53eae8fc0e55139f13123.datapack
317 -r--r--r-- 67 6409c5a1d61b251906689d4d1282ac44df6a7898.datapack
318 318 $ ls_l $TESTTMP/hgcache/master/packs/ | grep histpack
319 -r--r--r-- 336 094b530486dad4427a0faf6bcbc031571b99ca24.histpack
320 -r--r--r-- 90 c3399b56e035f73c3295276ed098235a08a0ed8c.histpack
319 -r--r--r-- 336 604552d403a1381749faf656feca0ca265a6d52c.histpack
320 -r--r--r-- 90 955a622173324b2d8b53e1147f209f1cf125302e.histpack
321 321
322 322 1 gen3 pack, 1 gen0 pack - does nothing
323 323 $ hg repack --incremental
324 324 $ ls_l $TESTTMP/hgcache/master/packs/ | grep datapack
325 -r--r--r-- 225 8fe685c56f6f7edf550bfcec74eeecc5f3c2ba15.datapack
326 -r--r--r-- 67 b5a62f3496ccbd2479497cdbc7345f3304735f33.datapack
325 -r--r--r-- 225 06ae46494f0e3b9beda53eae8fc0e55139f13123.datapack
326 -r--r--r-- 67 6409c5a1d61b251906689d4d1282ac44df6a7898.datapack
327 327 $ ls_l $TESTTMP/hgcache/master/packs/ | grep histpack
328 -r--r--r-- 336 094b530486dad4427a0faf6bcbc031571b99ca24.histpack
329 -r--r--r-- 90 c3399b56e035f73c3295276ed098235a08a0ed8c.histpack
328 -r--r--r-- 336 604552d403a1381749faf656feca0ca265a6d52c.histpack
329 -r--r--r-- 90 955a622173324b2d8b53e1147f209f1cf125302e.histpack
330 330
331 331 Pull should run background repack
332 332 $ cat >> .hg/hgrc <<EOF
@@ -351,9 +351,9 b' Pull should run background repack'
351 351 $ sleep 0.5
352 352 $ hg debugwaitonrepack >/dev/null 2>&1
353 353 $ ls_l $TESTTMP/hgcache/master/packs/ | grep datapack
354 -r--r--r-- 301 09b8bf49256b3fc2175977ba97d6402e91a9a604.datapack
354 -r--r--r-- 301 671913bebdb7b95aae52a546662753eac7606e40.datapack
355 355 $ ls_l $TESTTMP/hgcache/master/packs/ | grep histpack
356 -r--r--r-- 336 094b530486dad4427a0faf6bcbc031571b99ca24.histpack
356 -r--r--r-- 336 604552d403a1381749faf656feca0ca265a6d52c.histpack
357 357
358 358 Test environment variable resolution
359 359 $ CACHEPATH=$TESTTMP/envcache hg prefetch --config 'remotefilelog.cachepath=$CACHEPATH'
@@ -45,19 +45,19 b''
45 45 $TESTTMP/hgcache
46 46 $TESTTMP/hgcache/master
47 47 $TESTTMP/hgcache/master/packs
48 $TESTTMP/hgcache/master/packs/276d308429d0303762befa376788300f0310f90e.histidx
49 $TESTTMP/hgcache/master/packs/276d308429d0303762befa376788300f0310f90e.histpack
50 $TESTTMP/hgcache/master/packs/8e25dec685d5e0bb1f1b39df3acebda0e0d75c6e.dataidx
51 $TESTTMP/hgcache/master/packs/8e25dec685d5e0bb1f1b39df3acebda0e0d75c6e.datapack
48 $TESTTMP/hgcache/master/packs/1e91b207daf5d7b48f1be9c587d6b5ae654ce78c.histidx
49 $TESTTMP/hgcache/master/packs/1e91b207daf5d7b48f1be9c587d6b5ae654ce78c.histpack
50 $TESTTMP/hgcache/master/packs/add67cb28ae0a2962111588ce49467ca9ebb9195.dataidx
51 $TESTTMP/hgcache/master/packs/add67cb28ae0a2962111588ce49467ca9ebb9195.datapack
52 52 $TESTTMP/hgcache/master/packs/repacklock
53 53 $TESTTMP/hgcache/repos
54 54
55 55 # Test that the packs are readonly
56 56 $ ls_l $CACHEDIR/master/packs
57 -r--r--r-- 1145 276d308429d0303762befa376788300f0310f90e.histidx
58 -r--r--r-- 172 276d308429d0303762befa376788300f0310f90e.histpack
59 -r--r--r-- 1074 8e25dec685d5e0bb1f1b39df3acebda0e0d75c6e.dataidx
60 -r--r--r-- 69 8e25dec685d5e0bb1f1b39df3acebda0e0d75c6e.datapack
57 -r--r--r-- 1145 1e91b207daf5d7b48f1be9c587d6b5ae654ce78c.histidx
58 -r--r--r-- 172 1e91b207daf5d7b48f1be9c587d6b5ae654ce78c.histpack
59 -r--r--r-- 1074 add67cb28ae0a2962111588ce49467ca9ebb9195.dataidx
60 -r--r--r-- 69 add67cb28ae0a2962111588ce49467ca9ebb9195.datapack
61 61 -rw-r--r-- 0 repacklock
62 62
63 63 # Test that the data in the new packs is accessible
@@ -78,10 +78,10 b''
78 78
79 79 $ find $CACHEDIR -type f | sort
80 80 $TESTTMP/hgcache/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/d4a3ed9310e5bd9887e3bf779da5077efab28216
81 $TESTTMP/hgcache/master/packs/276d308429d0303762befa376788300f0310f90e.histidx
82 $TESTTMP/hgcache/master/packs/276d308429d0303762befa376788300f0310f90e.histpack
83 $TESTTMP/hgcache/master/packs/8e25dec685d5e0bb1f1b39df3acebda0e0d75c6e.dataidx
84 $TESTTMP/hgcache/master/packs/8e25dec685d5e0bb1f1b39df3acebda0e0d75c6e.datapack
81 $TESTTMP/hgcache/master/packs/1e91b207daf5d7b48f1be9c587d6b5ae654ce78c.histidx
82 $TESTTMP/hgcache/master/packs/1e91b207daf5d7b48f1be9c587d6b5ae654ce78c.histpack
83 $TESTTMP/hgcache/master/packs/add67cb28ae0a2962111588ce49467ca9ebb9195.dataidx
84 $TESTTMP/hgcache/master/packs/add67cb28ae0a2962111588ce49467ca9ebb9195.datapack
85 85 $TESTTMP/hgcache/master/packs/repacklock
86 86 $TESTTMP/hgcache/repos
87 87
@@ -91,20 +91,20 b''
91 91
92 92 $ find $CACHEDIR -type f | sort
93 93 $TESTTMP/hgcache/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/d4a3ed9310e5bd9887e3bf779da5077efab28216
94 $TESTTMP/hgcache/master/packs/276d308429d0303762befa376788300f0310f90e.histidx
95 $TESTTMP/hgcache/master/packs/276d308429d0303762befa376788300f0310f90e.histpack
96 $TESTTMP/hgcache/master/packs/8e25dec685d5e0bb1f1b39df3acebda0e0d75c6e.dataidx
97 $TESTTMP/hgcache/master/packs/8e25dec685d5e0bb1f1b39df3acebda0e0d75c6e.datapack
94 $TESTTMP/hgcache/master/packs/1e91b207daf5d7b48f1be9c587d6b5ae654ce78c.histidx
95 $TESTTMP/hgcache/master/packs/1e91b207daf5d7b48f1be9c587d6b5ae654ce78c.histpack
96 $TESTTMP/hgcache/master/packs/add67cb28ae0a2962111588ce49467ca9ebb9195.dataidx
97 $TESTTMP/hgcache/master/packs/add67cb28ae0a2962111588ce49467ca9ebb9195.datapack
98 98 $TESTTMP/hgcache/master/packs/repacklock
99 99 $TESTTMP/hgcache/repos
100 100
101 101 $ hg repack --traceback
102 102
103 103 $ find $CACHEDIR -type f | sort
104 $TESTTMP/hgcache/master/packs/077e7ce5dfe862dc40cc8f3c9742d96a056865f2.histidx
105 $TESTTMP/hgcache/master/packs/077e7ce5dfe862dc40cc8f3c9742d96a056865f2.histpack
106 $TESTTMP/hgcache/master/packs/935861cae0be6ce41a0d47a529e4d097e9e68a69.dataidx
107 $TESTTMP/hgcache/master/packs/935861cae0be6ce41a0d47a529e4d097e9e68a69.datapack
104 $TESTTMP/hgcache/master/packs/1bd27e610ee06450e5f3bb0cd3afb6870e4cf375.dataidx
105 $TESTTMP/hgcache/master/packs/1bd27e610ee06450e5f3bb0cd3afb6870e4cf375.datapack
106 $TESTTMP/hgcache/master/packs/8abe7889aae389337d12ebe6085d4ee13854c7c9.histidx
107 $TESTTMP/hgcache/master/packs/8abe7889aae389337d12ebe6085d4ee13854c7c9.histpack
108 108 $TESTTMP/hgcache/master/packs/repacklock
109 109 $TESTTMP/hgcache/repos
110 110
@@ -121,10 +121,10 b''
121 121 # and did not change the pack names
122 122 $ hg repack
123 123 $ find $CACHEDIR -type f | sort
124 $TESTTMP/hgcache/master/packs/077e7ce5dfe862dc40cc8f3c9742d96a056865f2.histidx
125 $TESTTMP/hgcache/master/packs/077e7ce5dfe862dc40cc8f3c9742d96a056865f2.histpack
126 $TESTTMP/hgcache/master/packs/935861cae0be6ce41a0d47a529e4d097e9e68a69.dataidx
127 $TESTTMP/hgcache/master/packs/935861cae0be6ce41a0d47a529e4d097e9e68a69.datapack
124 $TESTTMP/hgcache/master/packs/1bd27e610ee06450e5f3bb0cd3afb6870e4cf375.dataidx
125 $TESTTMP/hgcache/master/packs/1bd27e610ee06450e5f3bb0cd3afb6870e4cf375.datapack
126 $TESTTMP/hgcache/master/packs/8abe7889aae389337d12ebe6085d4ee13854c7c9.histidx
127 $TESTTMP/hgcache/master/packs/8abe7889aae389337d12ebe6085d4ee13854c7c9.histpack
128 128 $TESTTMP/hgcache/master/packs/repacklock
129 129 $TESTTMP/hgcache/repos
130 130
@@ -145,10 +145,10 b''
145 145 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over * (glob)
146 146 $ find $CACHEDIR -type f | sort
147 147 $TESTTMP/hgcache/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/1bb2e6237e035c8f8ef508e281f1ce075bc6db72
148 $TESTTMP/hgcache/master/packs/077e7ce5dfe862dc40cc8f3c9742d96a056865f2.histidx
149 $TESTTMP/hgcache/master/packs/077e7ce5dfe862dc40cc8f3c9742d96a056865f2.histpack
150 $TESTTMP/hgcache/master/packs/935861cae0be6ce41a0d47a529e4d097e9e68a69.dataidx
151 $TESTTMP/hgcache/master/packs/935861cae0be6ce41a0d47a529e4d097e9e68a69.datapack
148 $TESTTMP/hgcache/master/packs/1bd27e610ee06450e5f3bb0cd3afb6870e4cf375.dataidx
149 $TESTTMP/hgcache/master/packs/1bd27e610ee06450e5f3bb0cd3afb6870e4cf375.datapack
150 $TESTTMP/hgcache/master/packs/8abe7889aae389337d12ebe6085d4ee13854c7c9.histidx
151 $TESTTMP/hgcache/master/packs/8abe7889aae389337d12ebe6085d4ee13854c7c9.histpack
152 152 $TESTTMP/hgcache/master/packs/repacklock
153 153 $TESTTMP/hgcache/repos
154 154
@@ -157,17 +157,17 b''
157 157 $ sleep 0.5
158 158 $ hg debugwaitonrepack >/dev/null 2>&1
159 159 $ find $CACHEDIR -type f | sort
160 $TESTTMP/hgcache/master/packs/094b530486dad4427a0faf6bcbc031571b99ca24.histidx
161 $TESTTMP/hgcache/master/packs/094b530486dad4427a0faf6bcbc031571b99ca24.histpack
162 $TESTTMP/hgcache/master/packs/8fe685c56f6f7edf550bfcec74eeecc5f3c2ba15.dataidx
163 $TESTTMP/hgcache/master/packs/8fe685c56f6f7edf550bfcec74eeecc5f3c2ba15.datapack
160 $TESTTMP/hgcache/master/packs/06ae46494f0e3b9beda53eae8fc0e55139f13123.dataidx
161 $TESTTMP/hgcache/master/packs/06ae46494f0e3b9beda53eae8fc0e55139f13123.datapack
162 $TESTTMP/hgcache/master/packs/604552d403a1381749faf656feca0ca265a6d52c.histidx
163 $TESTTMP/hgcache/master/packs/604552d403a1381749faf656feca0ca265a6d52c.histpack
164 164 $TESTTMP/hgcache/master/packs/repacklock
165 165 $TESTTMP/hgcache/repos
166 166
167 167 # Test debug commands
168 168
169 169 $ hg debugdatapack $TESTTMP/hgcache/master/packs/*.datapack
170 $TESTTMP/hgcache/master/packs/8fe685c56f6f7edf550bfcec74eeecc5f3c2ba15:
170 $TESTTMP/hgcache/master/packs/06ae46494f0e3b9beda53eae8fc0e55139f13123:
171 171 x:
172 172 Node Delta Base Delta Length Blob Size
173 173 1bb2e6237e03 000000000000 8 8
@@ -176,7 +176,7 b''
176 176
177 177 Total: 32 18 (77.8% bigger)
178 178 $ hg debugdatapack --long $TESTTMP/hgcache/master/packs/*.datapack
179 $TESTTMP/hgcache/master/packs/8fe685c56f6f7edf550bfcec74eeecc5f3c2ba15:
179 $TESTTMP/hgcache/master/packs/06ae46494f0e3b9beda53eae8fc0e55139f13123:
180 180 x:
181 181 Node Delta Base Delta Length Blob Size
182 182 1bb2e6237e035c8f8ef508e281f1ce075bc6db72 0000000000000000000000000000000000000000 8 8
@@ -185,7 +185,7 b''
185 185
186 186 Total: 32 18 (77.8% bigger)
187 187 $ hg debugdatapack $TESTTMP/hgcache/master/packs/*.datapack --node d4a3ed9310e5bd9887e3bf779da5077efab28216
188 $TESTTMP/hgcache/master/packs/8fe685c56f6f7edf550bfcec74eeecc5f3c2ba15:
188 $TESTTMP/hgcache/master/packs/06ae46494f0e3b9beda53eae8fc0e55139f13123:
189 189
190 190 x
191 191 Node Delta Base Delta SHA1 Delta Length
@@ -234,10 +234,10 b''
234 234 2 files fetched over 2 fetches - (2 misses, 0.00% hit ratio) over * (glob)
235 235 $ hg repack
236 236 $ ls $TESTTMP/hgcache/master/packs
237 e8fdf7ae22b772dcc291f905b9c6e5f381d28739.dataidx
238 e8fdf7ae22b772dcc291f905b9c6e5f381d28739.datapack
239 ebbd7411e00456c0eec8d1150a77e2b3ef490f3f.histidx
240 ebbd7411e00456c0eec8d1150a77e2b3ef490f3f.histpack
237 308a7aba9c54a0b71ae5adbbccd00c0aff20876e.dataidx
238 308a7aba9c54a0b71ae5adbbccd00c0aff20876e.datapack
239 bfd60adb76018bb952e27cd23fc151bf94865d7d.histidx
240 bfd60adb76018bb952e27cd23fc151bf94865d7d.histpack
241 241 repacklock
242 242 $ hg debughistorypack $TESTTMP/hgcache/master/packs/*.histidx
243 243
@@ -267,7 +267,7 b''
267 267 $ rm -rf $CACHEDIR/master/packs/*hist*
268 268 $ hg repack
269 269 $ hg debugdatapack $TESTTMP/hgcache/master/packs/*.datapack
270 $TESTTMP/hgcache/master/packs/a8d86ff8e1a11a77a85f5fea567f56a757583eda:
270 $TESTTMP/hgcache/master/packs/ba4649b56263282b0699f9a6e7e34a4a2bac1638:
271 271 x:
272 272 Node Delta Base Delta Length Blob Size
273 273 1bb2e6237e03 000000000000 8 8
@@ -304,9 +304,9 b' Single pack - repack does nothing'
304 304 [1]
305 305 $ hg repack --incremental
306 306 $ ls_l $TESTTMP/hgcache/master/packs/ | grep datapack
307 -r--r--r-- 67 b5a62f3496ccbd2479497cdbc7345f3304735f33.datapack
307 -r--r--r-- 67 6409c5a1d61b251906689d4d1282ac44df6a7898.datapack
308 308 $ ls_l $TESTTMP/hgcache/master/packs/ | grep histpack
309 -r--r--r-- 90 c3399b56e035f73c3295276ed098235a08a0ed8c.histpack
309 -r--r--r-- 90 955a622173324b2d8b53e1147f209f1cf125302e.histpack
310 310
311 311 3 gen1 packs, 1 gen0 pack - packs 3 gen1 into 1
312 312 $ hg prefetch -r 1
@@ -317,9 +317,9 b' 3 gen1 packs, 1 gen0 pack - packs 3 gen1'
317 317 abort: unknown revision '38'!
318 318 [255]
319 319 $ ls_l $TESTTMP/hgcache/master/packs/ | grep datapack
320 -r--r--r-- 67 b5a62f3496ccbd2479497cdbc7345f3304735f33.datapack
320 -r--r--r-- 67 6409c5a1d61b251906689d4d1282ac44df6a7898.datapack
321 321 $ ls_l $TESTTMP/hgcache/master/packs/ | grep histpack
322 -r--r--r-- 90 c3399b56e035f73c3295276ed098235a08a0ed8c.histpack
322 -r--r--r-- 90 955a622173324b2d8b53e1147f209f1cf125302e.histpack
323 323
324 324 For the data packs, setting the limit for the repackmaxpacksize to be 64 such
325 325 that data pack with size 65 is more than the limit. This effectively ensures
@@ -329,31 +329,31 b' 0 which should always result in no repac'
329 329 $ hg repack --incremental --config remotefilelog.data.repackmaxpacksize=64 \
330 330 > --config remotefilelog.history.repackmaxpacksize=0
331 331 $ ls_l $TESTTMP/hgcache/master/packs/ | grep datapack
332 -r--r--r-- 147 935861cae0be6ce41a0d47a529e4d097e9e68a69.datapack
333 -r--r--r-- 67 b5a62f3496ccbd2479497cdbc7345f3304735f33.datapack
332 -r--r--r-- 147 1bd27e610ee06450e5f3bb0cd3afb6870e4cf375.datapack
333 -r--r--r-- 67 6409c5a1d61b251906689d4d1282ac44df6a7898.datapack
334 334 $ ls_l $TESTTMP/hgcache/master/packs/ | grep histpack
335 -r--r--r-- 254 077e7ce5dfe862dc40cc8f3c9742d96a056865f2.histpack
336 -r--r--r-- 90 c3399b56e035f73c3295276ed098235a08a0ed8c.histpack
335 -r--r--r-- 254 8abe7889aae389337d12ebe6085d4ee13854c7c9.histpack
336 -r--r--r-- 90 955a622173324b2d8b53e1147f209f1cf125302e.histpack
337 337
338 338 Setting limit for the repackmaxpacksize to be the size of the biggest pack file
339 339 which ensures that it is effectively ignored in the incremental repacking.
340 340 $ hg repack --incremental --config remotefilelog.data.repackmaxpacksize=65 \
341 341 > --config remotefilelog.history.repackmaxpacksize=336
342 342 $ ls_l $TESTTMP/hgcache/master/packs/ | grep datapack
343 -r--r--r-- 147 935861cae0be6ce41a0d47a529e4d097e9e68a69.datapack
344 -r--r--r-- 67 b5a62f3496ccbd2479497cdbc7345f3304735f33.datapack
343 -r--r--r-- 147 1bd27e610ee06450e5f3bb0cd3afb6870e4cf375.datapack
344 -r--r--r-- 67 6409c5a1d61b251906689d4d1282ac44df6a7898.datapack
345 345 $ ls_l $TESTTMP/hgcache/master/packs/ | grep histpack
346 -r--r--r-- 254 077e7ce5dfe862dc40cc8f3c9742d96a056865f2.histpack
347 -r--r--r-- 90 c3399b56e035f73c3295276ed098235a08a0ed8c.histpack
346 -r--r--r-- 254 8abe7889aae389337d12ebe6085d4ee13854c7c9.histpack
347 -r--r--r-- 90 955a622173324b2d8b53e1147f209f1cf125302e.histpack
348 348
349 349 1 gen3 pack, 1 gen0 pack - does nothing
350 350 $ hg repack --incremental
351 351 $ ls_l $TESTTMP/hgcache/master/packs/ | grep datapack
352 -r--r--r-- 147 935861cae0be6ce41a0d47a529e4d097e9e68a69.datapack
353 -r--r--r-- 67 b5a62f3496ccbd2479497cdbc7345f3304735f33.datapack
352 -r--r--r-- 147 1bd27e610ee06450e5f3bb0cd3afb6870e4cf375.datapack
353 -r--r--r-- 67 6409c5a1d61b251906689d4d1282ac44df6a7898.datapack
354 354 $ ls_l $TESTTMP/hgcache/master/packs/ | grep histpack
355 -r--r--r-- 254 077e7ce5dfe862dc40cc8f3c9742d96a056865f2.histpack
356 -r--r--r-- 90 c3399b56e035f73c3295276ed098235a08a0ed8c.histpack
355 -r--r--r-- 254 8abe7889aae389337d12ebe6085d4ee13854c7c9.histpack
356 -r--r--r-- 90 955a622173324b2d8b53e1147f209f1cf125302e.histpack
357 357
358 358 Pull should run background repack
359 359 $ cat >> .hg/hgrc <<EOF
@@ -378,9 +378,9 b' Pull should run background repack'
378 378 $ sleep 0.5
379 379 $ hg debugwaitonrepack >/dev/null 2>&1
380 380 $ ls_l $TESTTMP/hgcache/master/packs/ | grep datapack
381 -r--r--r-- 301 09b8bf49256b3fc2175977ba97d6402e91a9a604.datapack
381 -r--r--r-- 301 671913bebdb7b95aae52a546662753eac7606e40.datapack
382 382 $ ls_l $TESTTMP/hgcache/master/packs/ | grep histpack
383 -r--r--r-- 336 094b530486dad4427a0faf6bcbc031571b99ca24.histpack
383 -r--r--r-- 336 604552d403a1381749faf656feca0ca265a6d52c.histpack
384 384
385 385 Test environment variable resolution
386 386 $ CACHEPATH=$TESTTMP/envcache hg prefetch --config 'remotefilelog.cachepath=$CACHEPATH'
@@ -414,7 +414,7 b' Test local remotefilelog blob is correct'
414 414 Test limiting the max delta chain length
415 415 $ hg repack --config packs.maxchainlen=1
416 416 $ hg debugdatapack $TESTTMP/hgcache/master/packs/*.dataidx
417 $TESTTMP/hgcache/master/packs/a8378d888fe4325250720e51311a65d2509be742:
417 $TESTTMP/hgcache/master/packs/80f7c299aeb22849ebc28fbd11bb76078aa55918:
418 418 x:
419 419 Node Delta Base Delta Length Blob Size
420 420 1bb2e6237e03 000000000000 8 8
@@ -432,8 +432,8 b' Test limiting the max delta chain length'
432 432 Test huge pack cleanup using different values of packs.maxpacksize:
433 433 $ hg repack --incremental --debug
434 434 $ hg repack --incremental --debug --config packs.maxpacksize=512
435 removing oversize packfile $TESTTMP/hgcache/master/packs/a8378d888fe4325250720e51311a65d2509be742.datapack (426 bytes)
436 removing oversize packfile $TESTTMP/hgcache/master/packs/a8378d888fe4325250720e51311a65d2509be742.dataidx (1.21 KB)
435 removing oversize packfile $TESTTMP/hgcache/master/packs/80f7c299aeb22849ebc28fbd11bb76078aa55918.datapack (426 bytes)
436 removing oversize packfile $TESTTMP/hgcache/master/packs/80f7c299aeb22849ebc28fbd11bb76078aa55918.dataidx (1.21 KB)
437 437
438 438 Do a repack where the new pack reuses a delta from the old pack
439 439 $ clearcache
@@ -441,7 +441,7 b' Do a repack where the new pack reuses a '
441 441 2 files fetched over 1 fetches - (2 misses, 0.00% hit ratio) over * (glob)
442 442 $ hg repack
443 443 $ hg debugdatapack $CACHEDIR/master/packs/*.datapack
444 $TESTTMP/hgcache/master/packs/abf210f6c3aa4dd0ecc7033633ad73591be16c95:
444 $TESTTMP/hgcache/master/packs/90cfb1a45e2549500caace30add04b58a6b243af:
445 445 x:
446 446 Node Delta Base Delta Length Blob Size
447 447 1bb2e6237e03 000000000000 8 8
@@ -452,7 +452,7 b' Do a repack where the new pack reuses a '
452 452 2 files fetched over 1 fetches - (2 misses, 0.00% hit ratio) over * (glob)
453 453 $ hg repack
454 454 $ hg debugdatapack $CACHEDIR/master/packs/*.datapack
455 $TESTTMP/hgcache/master/packs/09b8bf49256b3fc2175977ba97d6402e91a9a604:
455 $TESTTMP/hgcache/master/packs/671913bebdb7b95aae52a546662753eac7606e40:
456 456 x:
457 457 Node Delta Base Delta Length Blob Size
458 458 1bb2e6237e03 000000000000 8 8
General Comments 0
You need to be logged in to leave comments. Login now