Mercurial > public > mercurial-scm > hg
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, |