Comments
Patch
@@ -190,8 +190,10 @@
return
vfs = repo.vfs
vfs.tryunlink(backupname)
- util.copyfile(vfs.join(DIRSTATE_FILENAME), vfs.join(backupname),
- hardlink=True)
+ # It may not exist in old repos
+ if vfs.exists(DIRSTATE_FILENAME):
+ util.copyfile(vfs.join(DIRSTATE_FILENAME), vfs.join(backupname),
+ hardlink=True)
def restorewcbackup(repo, backupname):
if repository.NARROW_REQUIREMENT not in repo.requirements:
@@ -1837,6 +1837,7 @@
# discard all changes (including ones already written
# out) in this transaction
narrowspec.restorebackup(self, 'journal.narrowspec')
+ narrowspec.restorewcbackup(self, 'journal.narrowspec')
repo.dirstate.restorebackup(None, 'journal.dirstate')
repo.invalidate(clearfilecache=True)
@@ -1925,6 +1926,7 @@
@unfilteredmethod
def _writejournal(self, desc):
self.dirstate.savebackup(None, 'journal.dirstate')
+ narrowspec.savewcbackup(self, 'journal.narrowspec')
narrowspec.savebackup(self, 'journal.narrowspec')
self.vfs.write("journal.branch",
encoding.fromlocal(self.dirstate.branch()))
@@ -2014,6 +2016,7 @@
dsguard.close()
narrowspec.restorebackup(self, 'undo.narrowspec')
+ narrowspec.restorewcbackup(self, 'undo.narrowspec')
self.dirstate.restorebackup(None, 'undo.dirstate')
try:
branch = self.vfs.read('undo.branch')