Mercurial > hg
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) |