##// END OF EJS Templates
issue6528: add a config option to control the fixing on the fly...
issue6528: add a config option to control the fixing on the fly This will allow people who know to be safe to avoid any performance overhead (and other potential issue). Differential Revision: https://phab.mercurial-scm.org/D11271

File last commit:

r44830:7a4e1d24 default
r48630:2813d406 5.9rc1 stable
Show More
test-repair-strip.t
143 lines | 4.1 KiB | text/troff | Tads3Lexer
/ tests / test-repair-strip.t
Gregory Szorc
tests: require revlog store with test-repair-strip.t...
r37443 #require unix-permissions no-root reporevlogstore
Patrick Mezard
test-repair-strip: turn into new style test
r14022
FUJIWARA Katsunori
tests: dump journal file by python script instead of sed for portability...
r27993 $ cat > $TESTTMP/dumpjournal.py <<EOF
> import sys
> for entry in sys.stdin.read().split('\n'):
> if entry:
Augie Fackler
tests: fix simple heredoc print statements to work on Py3...
r33686 > print(entry.split('\x00')[0])
FUJIWARA Katsunori
tests: dump journal file by python script instead of sed for portability...
r27993 > EOF
Patrick Mezard
test-repair-strip: turn into new style test
r14022 $ echo "[extensions]" >> $HGRCPATH
$ echo "mq=">> $HGRCPATH
$ teststrip() {
> hg -q up -C $1
> echo % before update $1, strip $2
> hg parents
> chmod -$3 $4
> hg strip $2 2>&1 | sed 's/\(bundle\).*/\1/' | sed 's/Permission denied.*\.hg\/store\/\(.*\)/Permission denied \.hg\/store\/\1/'
> echo % after update $1, strip $2
> chmod +$3 $4
> hg verify
> echo % journal contents
> if [ -f .hg/store/journal ]; then
Matt Harbison
tests: quote PYTHON usage...
r39743 > cat .hg/store/journal | "$PYTHON" $TESTTMP/dumpjournal.py
Patrick Mezard
test-repair-strip: turn into new style test
r14022 > else
> echo "(no journal)"
> fi
Valentin Gatien-Baron
recover: don't verify by default...
r44830 > if ls .hg/store/journal >/dev/null 2>&1; then
> hg recover --verify
> fi
Patrick Mezard
test-repair-strip: turn into new style test
r14022 > ls .hg/strip-backup/* >/dev/null 2>&1 && hg unbundle -q .hg/strip-backup/*
> rm -rf .hg/strip-backup
> }
$ hg init test
$ cd test
$ echo a > a
$ hg -q ci -m "a" -A
$ echo b > b
$ hg -q ci -m "b" -A
$ echo b2 >> b
$ hg -q ci -m "b2" -A
$ echo c > c
$ hg -q ci -m "c" -A
$ teststrip 0 2 w .hg/store/data/b.i
% before update 0, strip 2
changeset: 0:cb9a9f314b8b
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
saved backup bundle
transaction abort!
failed to truncate data/b.i
rollback failed - please run hg recover
Paul Sonnenschein
tests: remove hardcoded errno values...
r44243 (failure reason: [Errno *] Permission denied .hg/store/data/b.i') (glob)
Martin von Zweigbergk
strip: don't use "full" and "partial" to describe bundles...
r29954 strip failed, backup bundle
Yuya Nishihara
dispatch: quote filename in IOError as well...
r41465 abort: Permission denied .hg/store/data/b.i'
Patrick Mezard
test-repair-strip: turn into new style test
r14022 % after update 0, strip 2
abandoned transaction found - run hg recover
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
b@?: rev 1 points to nonexistent changeset 2
(expected 1)
b@?: 736c29771fba not in manifests
Gregory Szorc
verify: drop "revlog" from warning message...
r37428 warning: orphan data file 'data/c.i'
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 2 changesets with 3 changes to 2 files
Patrick Mezard
test-repair-strip: turn into new style test
r14022 2 warnings encountered!
2 integrity errors encountered!
% journal contents
00changelog.i
00manifest.i
data/b.i
data/c.i
rolling back interrupted transaction
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 2 changesets with 2 changes to 2 files
Patrick Mezard
test-repair-strip: turn into new style test
r14022 $ teststrip 0 2 r .hg/store/data/b.i
% before update 0, strip 2
changeset: 0:cb9a9f314b8b
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
Yuya Nishihara
dispatch: quote filename in IOError as well...
r41465 abort: Permission denied .hg/store/data/b.i'
Patrick Mezard
test-repair-strip: turn into new style test
r14022 % after update 0, strip 2
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 4 changesets with 4 changes to 3 files
Patrick Mezard
test-repair-strip: turn into new style test
r14022 % journal contents
(no journal)
$ teststrip 0 2 w .hg/store/00manifest.i
% before update 0, strip 2
changeset: 0:cb9a9f314b8b
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
saved backup bundle
transaction abort!
failed to truncate 00manifest.i
rollback failed - please run hg recover
Paul Sonnenschein
tests: remove hardcoded errno values...
r44243 (failure reason: [Errno *] Permission denied .hg/store/00manifest.i') (glob)
Martin von Zweigbergk
strip: don't use "full" and "partial" to describe bundles...
r29954 strip failed, backup bundle
Yuya Nishihara
dispatch: quote filename in IOError as well...
r41465 abort: Permission denied .hg/store/00manifest.i'
Patrick Mezard
test-repair-strip: turn into new style test
r14022 % after update 0, strip 2
abandoned transaction found - run hg recover
checking changesets
checking manifests
manifest@?: rev 2 points to nonexistent changeset 2
manifest@?: 3362547cdf64 not in changesets
manifest@?: rev 3 points to nonexistent changeset 3
manifest@?: 265a85892ecb not in changesets
crosschecking files in changesets and manifests
c@3: in manifest but not in changeset
checking files
b@?: rev 1 points to nonexistent changeset 2
(expected 1)
c@?: rev 0 points to nonexistent changeset 3
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 2 changesets with 4 changes to 3 files
Patrick Mezard
test-repair-strip: turn into new style test
r14022 1 warnings encountered!
7 integrity errors encountered!
(first damaged changeset appears to be 3)
% journal contents
00changelog.i
00manifest.i
data/b.i
data/c.i
rolling back interrupted transaction
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 2 changesets with 2 changes to 2 files
Patrick Mezard
test-repair-strip: turn into new style test
r14022
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913 $ cd ..