Mercurial > hgsubversion
comparison hgsubversion/maps.py @ 1430:48beb467b2e5
RevMap: use self._filepath instead of using meta
Part of a series to stop referencing meta inside the map classes.
author | Augie Fackler <raf@durin42.com> |
---|---|
date | Sun, 05 Jun 2016 20:37:28 -0400 |
parents | 3a723188051e |
children | 066c08918060 |
comparison
equal
deleted
inserted
replaced
1429:3a723188051e | 1430:48beb467b2e5 |
---|---|
345 VERSION = 1 | 345 VERSION = 1 |
346 | 346 |
347 def __init__(self, meta): | 347 def __init__(self, meta): |
348 dict.__init__(self) | 348 dict.__init__(self) |
349 self.meta = meta | 349 self.meta = meta |
350 self._filepath = meta.revmap_file | |
350 self._hashes = None | 351 self._hashes = None |
351 | 352 |
352 if os.path.isfile(self.meta.revmap_file): | 353 if os.path.isfile(self._filepath): |
353 self._load() | 354 self._load() |
354 else: | 355 else: |
355 self._write() | 356 self._write() |
356 | 357 |
357 def hashes(self): | 358 def hashes(self): |
393 items is an array of (rev num, branch, binary hash) | 394 items is an array of (rev num, branch, binary hash) |
394 | 395 |
395 For performance reason, internal in-memory state is not updated. | 396 For performance reason, internal in-memory state is not updated. |
396 To get an up-to-date RevMap, reconstruct the object. | 397 To get an up-to-date RevMap, reconstruct the object. |
397 ''' | 398 ''' |
398 f = open(self.meta.revmap_file, 'a') | 399 f = open(self._filepath, 'a') |
399 f.write(''.join('%s %s %s\n' % (revnum, hex(binhash), br or '') | 400 f.write(''.join('%s %s %s\n' % (revnum, hex(binhash), br or '') |
400 for revnum, br, binhash in items)) | 401 for revnum, br, binhash in items)) |
401 f.close() | 402 f.close() |
402 | 403 |
403 def _readmapfile(self): | 404 def _readmapfile(self): |
404 path = self.meta.revmap_file | 405 path = self._filepath |
405 try: | 406 try: |
406 f = open(path) | 407 f = open(path) |
407 except IOError, err: | 408 except IOError, err: |
408 if err.errno != errno.ENOENT: | 409 if err.errno != errno.ENOENT: |
409 raise | 410 raise |
436 setitem(self, (revnum, branch), bin(ha)) | 437 setitem(self, (revnum, branch), bin(ha)) |
437 self.meta.lastpulled = lastpulled | 438 self.meta.lastpulled = lastpulled |
438 self.meta.firstpulled = firstpulled | 439 self.meta.firstpulled = firstpulled |
439 | 440 |
440 def _write(self): | 441 def _write(self): |
441 f = open(self.meta.revmap_file, 'w') | 442 f = open(self._filepath, 'w') |
442 f.write('%s\n' % self.VERSION) | 443 f.write('%s\n' % self.VERSION) |
443 f.close() | 444 f.close() |
444 | 445 |
445 def __setitem__(self, key, ha): | 446 def __setitem__(self, key, ha): |
446 revnum, branch = key | 447 revnum, branch = key |
447 f = open(self.meta.revmap_file, 'a') | 448 f = open(self._filepath, 'a') |
448 b = branch or '' | 449 b = branch or '' |
449 f.write(str(revnum) + ' ' + hex(ha) + ' ' + b + '\n') | 450 f.write(str(revnum) + ' ' + hex(ha) + ' ' + b + '\n') |
450 f.close() | 451 f.close() |
451 if revnum > self.meta.lastpulled or not self.meta.lastpulled: | 452 if revnum > self.meta.lastpulled or not self.meta.lastpulled: |
452 self.meta.lastpulled = revnum | 453 self.meta.lastpulled = revnum |