mercurial/localrepo.py
changeset 41228 3b35ebdb9f8c
parent 41226 0f2b8d51bfdf
child 41229 50ca531f1f24
equal deleted inserted replaced
41227:b74481038438 41228:3b35ebdb9f8c
  1834                 repo.dirstate.write(None)
  1834                 repo.dirstate.write(None)
  1835             else:
  1835             else:
  1836                 # discard all changes (including ones already written
  1836                 # discard all changes (including ones already written
  1837                 # out) in this transaction
  1837                 # out) in this transaction
  1838                 narrowspec.restorebackup(self, 'journal.narrowspec')
  1838                 narrowspec.restorebackup(self, 'journal.narrowspec')
       
  1839                 narrowspec.restorewcbackup(self, 'journal.narrowspec.dirstate')
  1839                 repo.dirstate.restorebackup(None, 'journal.dirstate')
  1840                 repo.dirstate.restorebackup(None, 'journal.dirstate')
  1840 
  1841 
  1841                 repo.invalidate(clearfilecache=True)
  1842                 repo.invalidate(clearfilecache=True)
  1842 
  1843 
  1843         tr = transaction.transaction(rp, self.svfs, vfsmap,
  1844         tr = transaction.transaction(rp, self.svfs, vfsmap,
  1911         return tr
  1912         return tr
  1912 
  1913 
  1913     def _journalfiles(self):
  1914     def _journalfiles(self):
  1914         return ((self.svfs, 'journal'),
  1915         return ((self.svfs, 'journal'),
  1915                 (self.svfs, 'journal.narrowspec'),
  1916                 (self.svfs, 'journal.narrowspec'),
       
  1917                 (self.vfs, 'journal.narrowspec.dirstate'),
  1916                 (self.vfs, 'journal.dirstate'),
  1918                 (self.vfs, 'journal.dirstate'),
  1917                 (self.vfs, 'journal.branch'),
  1919                 (self.vfs, 'journal.branch'),
  1918                 (self.vfs, 'journal.desc'),
  1920                 (self.vfs, 'journal.desc'),
  1919                 (self.vfs, 'journal.bookmarks'),
  1921                 (self.vfs, 'journal.bookmarks'),
  1920                 (self.svfs, 'journal.phaseroots'))
  1922                 (self.svfs, 'journal.phaseroots'))
  1923         return [(vfs, undoname(x)) for vfs, x in self._journalfiles()]
  1925         return [(vfs, undoname(x)) for vfs, x in self._journalfiles()]
  1924 
  1926 
  1925     @unfilteredmethod
  1927     @unfilteredmethod
  1926     def _writejournal(self, desc):
  1928     def _writejournal(self, desc):
  1927         self.dirstate.savebackup(None, 'journal.dirstate')
  1929         self.dirstate.savebackup(None, 'journal.dirstate')
       
  1930         narrowspec.savewcbackup(self, 'journal.narrowspec.dirstate')
  1928         narrowspec.savebackup(self, 'journal.narrowspec')
  1931         narrowspec.savebackup(self, 'journal.narrowspec')
  1929         self.vfs.write("journal.branch",
  1932         self.vfs.write("journal.branch",
  1930                           encoding.fromlocal(self.dirstate.branch()))
  1933                           encoding.fromlocal(self.dirstate.branch()))
  1931         self.vfs.write("journal.desc",
  1934         self.vfs.write("journal.desc",
  1932                           "%d\n%s\n" % (len(self), desc))
  1935                           "%d\n%s\n" % (len(self), desc))
  2012         if parentgone:
  2015         if parentgone:
  2013             # prevent dirstateguard from overwriting already restored one
  2016             # prevent dirstateguard from overwriting already restored one
  2014             dsguard.close()
  2017             dsguard.close()
  2015 
  2018 
  2016             narrowspec.restorebackup(self, 'undo.narrowspec')
  2019             narrowspec.restorebackup(self, 'undo.narrowspec')
       
  2020             narrowspec.restorewcbackup(self, 'undo.narrowspec.dirstate')
  2017             self.dirstate.restorebackup(None, 'undo.dirstate')
  2021             self.dirstate.restorebackup(None, 'undo.dirstate')
  2018             try:
  2022             try:
  2019                 branch = self.vfs.read('undo.branch')
  2023                 branch = self.vfs.read('undo.branch')
  2020                 self.dirstate.setbranch(encoding.tolocal(branch))
  2024                 self.dirstate.setbranch(encoding.tolocal(branch))
  2021             except IOError:
  2025             except IOError: