diff tests/test-journal-exists @ 9693:c40a1ee20aa5

transaction: always remove empty journal on abort When transactions without entries were aborted, the journal (of size 0) was not unlinked, which prevents subsequent operations until hg recover is run on the repository. We also make sure the journal is unlinked when committing, even if the provided hook doesn't do so.
author Sune Foldager <cryo@cyanite.org>
date Mon, 02 Nov 2009 10:19:14 +0100
parents b6d8972ce339
children
line wrap: on
line diff
--- a/tests/test-journal-exists	Mon Nov 02 10:18:43 2009 +0100
+++ b/tests/test-journal-exists	Mon Nov 02 10:19:14 2009 +0100
@@ -3,6 +3,7 @@
 hg init
 echo a > a
 hg ci -Am0
+hg -q clone . foo
 
 touch .hg/store/journal
 
@@ -10,3 +11,10 @@
 hg ci -Am0
 
 hg recover
+
+echo % check that zero-size journals are correctly aborted
+hg bundle -qa repo.hg
+chmod -w foo/.hg/store/00changelog.i
+hg -R foo unbundle repo.hg 2>&1 | sed 's/\(abort: Permission denied\).*/\1/'
+if test -f foo/.hg/store/journal; then echo 'journal exists :-('; fi
+exit 0