Mercurial > hg
view tests/test-journal-exists.t @ 49993:2f348babe30d
transaction: clarify the "quick abort" scenario
Right now, the transaction has a code-pass to do a "quick abort" that skip most¹
(too much) of the logic when the right condition are detected²
We are about to improve this logic in multiple aspect. We clarify the code
first.
The conditional return in `_can_quick_abort` looks a bit weird because we are
about to make them more complex very soon.
[1] actually too much
[2] actually not often enough
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 14 Feb 2023 18:59:04 +0100 |
parents | 2f2682f40ea0 |
children | adecb1ab4a0d |
line wrap: on
line source
$ hg init repo $ cd repo $ echo a > a $ hg ci -Am0 adding a $ hg -q clone . foo $ touch .hg/store/journal $ echo foo > a $ hg ci -Am0 abort: abandoned transaction found (run 'hg recover' to clean up transaction) [255] $ hg recover rolling back interrupted transaction (verify step skipped, run `hg verify` to check your repository content) recover, explicit verify $ touch .hg/store/journal $ hg ci -Am0 abort: abandoned transaction found (run 'hg recover' to clean up transaction) [255] $ hg recover --verify -q recover, no verify $ touch .hg/store/journal $ hg ci -Am0 abort: abandoned transaction found (run 'hg recover' to clean up transaction) [255] $ hg recover --no-verify rolling back interrupted transaction (verify step skipped, run `hg verify` to check your repository content) Check that zero-size journals are correctly aborted: #if unix-permissions no-root $ hg bundle -qa repo.hg $ chmod -w foo/.hg/store/00changelog.i $ hg -R foo unbundle repo.hg adding changesets abort: Permission denied: '$TESTTMP/repo/foo/.hg/store/.00changelog.i-*' (glob) [255] $ if test -f foo/.hg/store/journal; then echo 'journal exists :-('; fi #endif