comparison mercurial/dirstateguard.py @ 41227:b74481038438

narrow: make dirstateguard back up and restore working copy narrowspec instead We used to have only one narrowspec for the store and the working copy, but now that we have one narrowspec for each, it seems clear that the dirstateguard was supposed to back up and restore the narrowspec associated with the working copy, not the one associated with the store. clearbackup() (for the store narrowspec) is not needed because the presence of the file in localrepository._journalfiles() takes care of that. Differential Revision: https://phab.mercurial-scm.org/D5504
author Martin von Zweigbergk <martinvonz@google.com>
date Sat, 29 Dec 2018 22:27:39 -0800
parents ad24b581e4d9
children 57875cf423c9
comparison
equal deleted inserted replaced
41226:0f2b8d51bfdf 41227:b74481038438
35 self._closed = False 35 self._closed = False
36 self._backupname = 'dirstate.backup.%s.%d' % (name, id(self)) 36 self._backupname = 'dirstate.backup.%s.%d' % (name, id(self))
37 self._narrowspecbackupname = ('narrowspec.backup.%s.%d' % 37 self._narrowspecbackupname = ('narrowspec.backup.%s.%d' %
38 (name, id(self))) 38 (name, id(self)))
39 repo.dirstate.savebackup(repo.currenttransaction(), self._backupname) 39 repo.dirstate.savebackup(repo.currenttransaction(), self._backupname)
40 narrowspec.savebackup(repo, self._narrowspecbackupname) 40 narrowspec.savewcbackup(repo, self._narrowspecbackupname)
41 self._active = True 41 self._active = True
42 42
43 def __del__(self): 43 def __del__(self):
44 if self._active: # still active 44 if self._active: # still active
45 # this may occur, even if this class is used correctly: 45 # this may occur, even if this class is used correctly:
54 % self._backupname) 54 % self._backupname)
55 raise error.Abort(msg) 55 raise error.Abort(msg)
56 56
57 self._repo.dirstate.clearbackup(self._repo.currenttransaction(), 57 self._repo.dirstate.clearbackup(self._repo.currenttransaction(),
58 self._backupname) 58 self._backupname)
59 narrowspec.clearbackup(self._repo, self._narrowspecbackupname) 59 narrowspec.clearwcbackup(self._repo, self._narrowspecbackupname)
60 self._active = False 60 self._active = False
61 self._closed = True 61 self._closed = True
62 62
63 def _abort(self): 63 def _abort(self):
64 narrowspec.restorebackup(self._repo, self._narrowspecbackupname) 64 narrowspec.restorewcbackup(self._repo, self._narrowspecbackupname)
65 self._repo.dirstate.restorebackup(self._repo.currenttransaction(), 65 self._repo.dirstate.restorebackup(self._repo.currenttransaction(),
66 self._backupname) 66 self._backupname)
67 self._active = False 67 self._active = False
68 68
69 def release(self): 69 def release(self):