transaction: write pending generated files
Such file are generated with a .pending prefix. It is up to the reader to
implement the necessary logic for reading pending files.
We add a test to ensure pending files are properly cleaned-up in both success and
error cases.
--- a/mercurial/transaction.py Fri Oct 17 21:57:32 2014 -0700
+++ b/mercurial/transaction.py Fri Oct 17 22:19:05 2014 -0700
@@ -342,6 +342,7 @@
# remove callback since the data will have been flushed
any = self._pendingcallback.pop(cat)(self)
self._anypending = self._anypending or any
+ self._anypending |= self._generatefiles(suffix='.pending')
return self._anypending
@active
--- a/tests/test-bundle2-exchange.t Fri Oct 17 21:57:32 2014 -0700
+++ b/tests/test-bundle2-exchange.t Fri Oct 17 22:19:05 2014 -0700
@@ -304,6 +304,15 @@
6666666666666666666666666666666666666666 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
7777777777777777777777777777777777777777 32af7686d403cf45b5d95f2d70cebea587ac806a 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
+(check that no 'pending' files remain)
+
+ $ ls -1 other/.hg/bookmarks*
+ other/.hg/bookmarks
+ $ ls -1 other/.hg/store/phaseroots*
+ other/.hg/store/phaseroots
+ $ ls -1 other/.hg/store/00changelog.i*
+ other/.hg/store/00changelog.i
+
Error Handling
==============
@@ -479,4 +488,12 @@
abort: b2x-pretransactionclose.failpush hook exited with status 1
[255]
+(check that no 'pending' files remain)
+ $ ls -1 other/.hg/bookmarks*
+ other/.hg/bookmarks
+ $ ls -1 other/.hg/store/phaseroots*
+ other/.hg/store/phaseroots
+ $ ls -1 other/.hg/store/00changelog.i*
+ other/.hg/store/00changelog.i
+