Mercurial > hg
view tests/test-journal-exists.t @ 47767:66ad7e32011f stable
fix: use scmutil.movedirstate() instead of reimplementing
I wrote this patch 2 years ago as a little cleanup. I wanted to
generally used `scmutil.movedirstate()` instead of manually updating
the dirstate because that is easy to get wrong. I didn't know until
today that the current code had a bug. So I added the test case two
patches before this one and dusted off this one patch. This is a
little slower than the previous code, as it diffs two
manifests. However, it fixes the bug and I don't think it's going to
be noticeably slower anyway.
Differential Revision: https://phab.mercurial-scm.org/D11210
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Mon, 11 Mar 2019 10:59:35 -0700 |
parents | 95c4cca641f6 |
children | 55c6ebd11cb9 |
line wrap: on
line source
$ hg init $ 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 rolling back interrupted transaction checking changesets checking manifests crosschecking files in changesets and manifests checking files checked 1 changesets with 1 changes to 1 files 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/foo/.hg/store/.00changelog.i-*' (glob) [255] $ if test -f foo/.hg/store/journal; then echo 'journal exists :-('; fi #endif