comparison mercurial/dirstate.py @ 29189:930d4ee4647e

dirstate: add prefix and suffix arguments to backup This would allow the code explicitly copying dirstate to use this method instead. Use of this method will increase encapsulation (the dirstate class will be sole owner of its on-disk storage).
author Mateusz Kwapich <mitrandir@fb.com>
date Fri, 13 May 2016 13:28:09 -0700
parents 0e9ed09f5fe9
children 3e438497edca
comparison
equal deleted inserted replaced
29188:f00f1de16454 29189:930d4ee4647e
1205 if tr: 1205 if tr:
1206 return self._pendingfilename 1206 return self._pendingfilename
1207 else: 1207 else:
1208 return self._filename 1208 return self._filename
1209 1209
1210 def savebackup(self, tr, suffix): 1210 def savebackup(self, tr, suffix='', prefix=''):
1211 '''Save current dirstate into backup file with suffix''' 1211 '''Save current dirstate into backup file with suffix'''
1212 filename = self._actualfilename(tr) 1212 filename = self._actualfilename(tr)
1213 1213
1214 # use '_writedirstate' instead of 'write' to write changes certainly, 1214 # use '_writedirstate' instead of 'write' to write changes certainly,
1215 # because the latter omits writing out if transaction is running. 1215 # because the latter omits writing out if transaction is running.
1226 # ensure that pending file written above is unlinked at 1226 # ensure that pending file written above is unlinked at
1227 # failure, even if tr.writepending isn't invoked until the 1227 # failure, even if tr.writepending isn't invoked until the
1228 # end of this transaction 1228 # end of this transaction
1229 tr.registertmp(filename, location='plain') 1229 tr.registertmp(filename, location='plain')
1230 1230
1231 self._opener.write(filename + suffix, self._opener.tryread(filename)) 1231 self._opener.write(prefix + filename + suffix,
1232 1232 self._opener.tryread(filename))
1233 def restorebackup(self, tr, suffix): 1233
1234 def restorebackup(self, tr, suffix='', prefix=''):
1234 '''Restore dirstate by backup file with suffix''' 1235 '''Restore dirstate by backup file with suffix'''
1235 # this "invalidate()" prevents "wlock.release()" from writing 1236 # this "invalidate()" prevents "wlock.release()" from writing
1236 # changes of dirstate out after restoring from backup file 1237 # changes of dirstate out after restoring from backup file
1237 self.invalidate() 1238 self.invalidate()
1238 filename = self._actualfilename(tr) 1239 filename = self._actualfilename(tr)
1239 self._opener.rename(filename + suffix, filename) 1240 self._opener.rename(prefix + filename + suffix, filename)
1240 1241
1241 def clearbackup(self, tr, suffix): 1242 def clearbackup(self, tr, suffix='', prefix=''):
1242 '''Clear backup file with suffix''' 1243 '''Clear backup file with suffix'''
1243 filename = self._actualfilename(tr) 1244 filename = self._actualfilename(tr)
1244 self._opener.unlink(filename + suffix) 1245 self._opener.unlink(prefix + filename + suffix)