comparison mercurial/localrepo.py @ 50281:f34887316f1f stable

undo-files: factor the vfs map in a repository property We define it in multiple locations and inconsistencies are appearing. So we now have a single definition point.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Mon, 06 Mar 2023 13:30:41 +0100
parents f92afdf3cff9
children a43f0562220c
comparison
equal deleted inserted replaced
50280:5e568d70f54d 50281:f34887316f1f
1563 ) 1563 )
1564 return ret 1564 return ret
1565 1565
1566 return checksvfs 1566 return checksvfs
1567 1567
1568 @property
1569 def vfs_map(self):
1570 return {
1571 b'': self.svfs,
1572 b'plain': self.vfs,
1573 b'store': self.svfs,
1574 }
1575
1568 def close(self): 1576 def close(self):
1569 self._writecaches() 1577 self._writecaches()
1570 1578
1571 def _writecaches(self): 1579 def _writecaches(self):
1572 if self._revbranchcache: 1580 if self._revbranchcache:
2413 renames = [(vfs, x, undoname(x)) for vfs, x in self._journalfiles()] 2421 renames = [(vfs, x, undoname(x)) for vfs, x in self._journalfiles()]
2414 if report: 2422 if report:
2415 rp = report 2423 rp = report
2416 else: 2424 else:
2417 rp = self.ui.warn 2425 rp = self.ui.warn
2418 vfsmap = {b'plain': self.vfs, b'store': self.svfs} # root of .hg/ 2426 vfsmap = self.vfs_map
2419 # we must avoid cyclic reference between repo and transaction. 2427 # we must avoid cyclic reference between repo and transaction.
2420 reporef = weakref.ref(self) 2428 reporef = weakref.ref(self)
2421 # Code to track tag movement 2429 # Code to track tag movement
2422 # 2430 #
2423 # Since tags are all handled as file content, it is actually quite hard 2431 # Since tags are all handled as file content, it is actually quite hard
2702 2710
2703 def recover(self): 2711 def recover(self):
2704 with self.lock(): 2712 with self.lock():
2705 if self.svfs.exists(b"journal"): 2713 if self.svfs.exists(b"journal"):
2706 self.ui.status(_(b"rolling back interrupted transaction\n")) 2714 self.ui.status(_(b"rolling back interrupted transaction\n"))
2707 vfsmap = { 2715 vfsmap = self.vfs_map
2708 b'': self.svfs,
2709 b'plain': self.vfs,
2710 }
2711 transaction.rollback( 2716 transaction.rollback(
2712 self.svfs, 2717 self.svfs,
2713 vfsmap, 2718 vfsmap,
2714 b"journal", 2719 b"journal",
2715 self.ui.warn, 2720 self.ui.warn,
2773 ui.status(msg) 2778 ui.status(msg)
2774 if dryrun: 2779 if dryrun:
2775 return 0 2780 return 0
2776 2781
2777 self.destroying() 2782 self.destroying()
2778 vfsmap = {b'plain': self.vfs, b'': self.svfs} 2783 vfsmap = self.vfs_map
2779 skip_journal_pattern = None 2784 skip_journal_pattern = None
2780 if not parentgone: 2785 if not parentgone:
2781 skip_journal_pattern = RE_SKIP_DIRSTATE_ROLLBACK 2786 skip_journal_pattern = RE_SKIP_DIRSTATE_ROLLBACK
2782 transaction.rollback( 2787 transaction.rollback(
2783 self.svfs, 2788 self.svfs,