mercurial/localrepo.py
branchstable
changeset 50281 f34887316f1f
parent 50267 f92afdf3cff9
child 50284 a43f0562220c
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,