Skip to content
Snippets Groups Projects
Commit e51f34183599 authored by Mateusz Kwapich's avatar Mateusz Kwapich
Browse files

localrepo: use dirstate restorebackup instead of copying dirstate manually

This is one step towards having dirstate manage its own storage. It will
be useful for the implementation of sqldirstate [1].

I'm deleting two of the dirstate.invalidate() calls in localrepo because
restorebackup method does that for us.

[1] https://www.mercurial-scm.org/wiki/SQLDirstatePlan
parent 930d4ee4647e
No related merge requests found
......@@ -1042,9 +1042,5 @@
# transaction running
repo.dirstate.write(None)
else:
# prevent in-memory changes from being written out at
# the end of outer wlock scope or so
repo.dirstate.invalidate()
# discard all changes (including ones already written
# out) in this transaction
......@@ -1049,6 +1045,6 @@
# discard all changes (including ones already written
# out) in this transaction
repo.vfs.rename('journal.dirstate', 'dirstate')
repo.dirstate.restorebackup(None, prefix='journal.')
repo.invalidate(clearfilecache=True)
......@@ -1190,7 +1186,7 @@
# prevent dirstateguard from overwriting already restored one
dsguard.close()
self.vfs.rename('undo.dirstate', 'dirstate')
self.dirstate.restorebackup(None, prefix='undo.')
try:
branch = self.vfs.read('undo.branch')
self.dirstate.setbranch(encoding.tolocal(branch))
......@@ -1199,7 +1195,6 @@
'current branch is still \'%s\'\n')
% self.dirstate.branch())
self.dirstate.invalidate()
parents = tuple([p.rev() for p in self[None].parents()])
if len(parents) > 1:
ui.status(_('working directory now based on '
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment