Show More
@@ -290,6 +290,8 b' class transaction(util.transactional):' | |||||
290 | self._backupjournal = b"%s.backupfiles" % self._journal |
|
290 | self._backupjournal = b"%s.backupfiles" % self._journal | |
291 | self._backupsfile = opener.open(self._backupjournal, b'w') |
|
291 | self._backupsfile = opener.open(self._backupjournal, b'w') | |
292 | self._backupsfile.write(b'%d\n' % version) |
|
292 | self._backupsfile.write(b'%d\n' % version) | |
|
293 | # the set of temporary files | |||
|
294 | self._tmp_files = set() | |||
293 |
|
295 | |||
294 | if createmode is not None: |
|
296 | if createmode is not None: | |
295 | opener.chmod(self._journal, createmode & 0o666) |
|
297 | opener.chmod(self._journal, createmode & 0o666) | |
@@ -354,6 +356,7 b' class transaction(util.transactional):' | |||||
354 | file in self._newfiles |
|
356 | file in self._newfiles | |
355 | or file in self._offsetmap |
|
357 | or file in self._offsetmap | |
356 | or file in self._backupmap |
|
358 | or file in self._backupmap | |
|
359 | or file in self._tmp_files | |||
357 | ): |
|
360 | ): | |
358 | return |
|
361 | return | |
359 | if self._queue: |
|
362 | if self._queue: | |
@@ -368,6 +371,7 b' class transaction(util.transactional):' | |||||
368 | file in self._newfiles |
|
371 | file in self._newfiles | |
369 | or file in self._offsetmap |
|
372 | or file in self._offsetmap | |
370 | or file in self._backupmap |
|
373 | or file in self._backupmap | |
|
374 | or file in self._tmp_files | |||
371 | ): |
|
375 | ): | |
372 | return |
|
376 | return | |
373 | if offset: |
|
377 | if offset: | |
@@ -439,6 +443,7 b' class transaction(util.transactional):' | |||||
439 | Such files will be deleted when the transaction exits (on both |
|
443 | Such files will be deleted when the transaction exits (on both | |
440 | failure and success). |
|
444 | failure and success). | |
441 | """ |
|
445 | """ | |
|
446 | self._tmp_files.add(tmpfile) | |||
442 | self._addbackupentry((location, b'', tmpfile, False)) |
|
447 | self._addbackupentry((location, b'', tmpfile, False)) | |
443 |
|
448 | |||
444 | @active |
|
449 | @active |
@@ -104,13 +104,17 b' setup a repository for tests' | |||||
104 | > dd if=/dev/zero of=$f bs=1k count=128 > /dev/null 2>&1 |
|
104 | > dd if=/dev/zero of=$f bs=1k count=128 > /dev/null 2>&1 | |
105 | > done |
|
105 | > done | |
106 | $ hg commit -AqmD --traceback |
|
106 | $ hg commit -AqmD --traceback | |
|
107 | $ for f in $files; do | |||
|
108 | > dd if=/dev/zero of=$f bs=1k count=132 > /dev/null 2>&1 | |||
|
109 | > done | |||
|
110 | $ hg commit -AqmD --traceback | |||
107 |
|
111 | |||
108 | Reference size: |
|
112 | Reference size: | |
109 | $ f -s file |
|
113 | $ f -s file | |
110 |
file: size=13 |
|
114 | file: size=135168 | |
111 | $ f -s .hg/store/data/file* |
|
115 | $ f -s .hg/store/data/file* | |
112 |
.hg/store/data/file.d: size= |
|
116 | .hg/store/data/file.d: size=267307 | |
113 |
.hg/store/data/file.i: size= |
|
117 | .hg/store/data/file.i: size=320 | |
114 |
|
118 | |||
115 | $ cd .. |
|
119 | $ cd .. | |
116 |
|
120 | |||
@@ -157,10 +161,12 b' Reference size:' | |||||
157 |
|
161 | |||
158 | The inline revlog still exist, but a split version exist next to it |
|
162 | The inline revlog still exist, but a split version exist next to it | |
159 |
|
163 | |||
|
164 | $ cat .hg/store/journal | tr '\0' ' ' | grep '\.s' | |||
|
165 | [1] | |||
160 | $ f -s .hg/store/data/file* |
|
166 | $ f -s .hg/store/data/file* | |
161 |
.hg/store/data/file.d: size= |
|
167 | .hg/store/data/file.d: size=267307 | |
162 | .hg/store/data/file.i: size=132395 |
|
168 | .hg/store/data/file.i: size=132395 | |
163 |
.hg/store/data/file.i.s: size= |
|
169 | .hg/store/data/file.i.s: size=320 | |
164 |
|
170 | |||
165 |
|
171 | |||
166 | The first file.i entry should match the "Reference size" above. |
|
172 | The first file.i entry should match the "Reference size" above. | |
@@ -237,9 +243,9 b' Reference size:' | |||||
237 | The inline revlog still exist, but a split version exist next to it |
|
243 | The inline revlog still exist, but a split version exist next to it | |
238 |
|
244 | |||
239 | $ f -s .hg/store/data/file* |
|
245 | $ f -s .hg/store/data/file* | |
240 |
.hg/store/data/file.d: size= |
|
246 | .hg/store/data/file.d: size=267307 | |
241 | .hg/store/data/file.i: size=132395 |
|
247 | .hg/store/data/file.i: size=132395 | |
242 |
.hg/store/data/file.i.s: size= |
|
248 | .hg/store/data/file.i.s: size=320 | |
243 |
|
249 | |||
244 | $ cat .hg/store/journal | tr -s '\000' ' ' | grep data/file |
|
250 | $ cat .hg/store/journal | tr -s '\000' ' ' | grep data/file | |
245 | data/file.i 1174 |
|
251 | data/file.i 1174 | |
@@ -302,8 +308,8 b' Reference size:' | |||||
302 | The inline revlog was over written on disk |
|
308 | The inline revlog was over written on disk | |
303 |
|
309 | |||
304 | $ f -s .hg/store/data/file* |
|
310 | $ f -s .hg/store/data/file* | |
305 |
.hg/store/data/file.d: size= |
|
311 | .hg/store/data/file.d: size=267307 | |
306 |
.hg/store/data/file.i: size= |
|
312 | .hg/store/data/file.i: size=320 | |
307 |
|
313 | |||
308 | $ cat .hg/store/journal | tr -s '\000' ' ' | grep data/file |
|
314 | $ cat .hg/store/journal | tr -s '\000' ' ' | grep data/file | |
309 | data/file.i 1174 |
|
315 | data/file.i 1174 | |
@@ -434,7 +440,7 b' We checks that hooks properly see the in' | |||||
434 | adding changesets |
|
440 | adding changesets | |
435 | adding manifests |
|
441 | adding manifests | |
436 | adding file changes |
|
442 | adding file changes | |
437 |
size=13 |
|
443 | size=135168 | |
438 | transaction abort! |
|
444 | transaction abort! | |
439 | rollback completed |
|
445 | rollback completed | |
440 | abort: pretxnclose.03-abort hook exited with status 1 |
|
446 | abort: pretxnclose.03-abort hook exited with status 1 |
General Comments 0
You need to be logged in to leave comments.
Login now