##// END OF EJS Templates
verify: also check dirstate...
verify: also check dirstate The dirstate already is capable of verifying its integrity (although v2 features are not yet checked), let's run that code in `hg verify`.

File last commit:

r50721:c84844cd default
r50721:c84844cd default
Show More
test-verify.t
365 lines | 10.2 KiB | text/troff | Tads3Lexer
Gregory Szorc
tests: require revlog store for test-verify.t...
r37446 #require reporevlogstore
Nicolas Dumazet
tests: unify test-verify
r11787 prepare repo
$ hg init a
$ cd a
$ echo "some text" > FOO.txt
$ echo "another text" > bar.txt
$ echo "more text" > QUICK.txt
$ hg add
adding FOO.txt
adding QUICK.txt
adding bar.txt
$ hg ci -mtest1
verify
$ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
Raphaël Gomès
verify: also check dirstate...
r50721 checking dirstate
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 1 changesets with 3 changes to 3 files
Nicolas Dumazet
tests: unify test-verify
r11787
verify with journal
$ touch .hg/store/journal
$ hg verify
abandoned transaction found - run hg recover
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
Raphaël Gomès
verify: also check dirstate...
r50721 checking dirstate
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 1 changesets with 3 changes to 3 files
Nicolas Dumazet
tests: unify test-verify
r11787 $ rm .hg/store/journal
introduce some bugs in repo
$ cd .hg/store/data
$ mv _f_o_o.txt.i X_f_o_o.txt.i
$ mv bar.txt.i xbar.txt.i
$ rm _q_u_i_c_k.txt.i
$ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
Matt Mackall
verify: clarify misleading fncache message...
r25627 warning: revlog 'data/FOO.txt.i' not in fncache!
Nicolas Dumazet
tests: unify test-verify
r11787 0: empty or missing FOO.txt
Martin von Zweigbergk
verify: use similar language for missing manifest and file revisions...
r28114 FOO.txt@0: manifest refers to unknown revision f62022d3d590
Matt Mackall
verify: clarify misleading fncache message...
r25627 warning: revlog 'data/QUICK.txt.i' not in fncache!
Nicolas Dumazet
tests: unify test-verify
r11787 0: empty or missing QUICK.txt
Martin von Zweigbergk
verify: use similar language for missing manifest and file revisions...
r28114 QUICK.txt@0: manifest refers to unknown revision 88b857db8eba
Matt Mackall
verify: clarify misleading fncache message...
r25627 warning: revlog 'data/bar.txt.i' not in fncache!
Nicolas Dumazet
tests: unify test-verify
r11787 0: empty or missing bar.txt
Martin von Zweigbergk
verify: use similar language for missing manifest and file revisions...
r28114 bar.txt@0: manifest refers to unknown revision 256559129457
Raphaël Gomès
verify: also check dirstate...
r50721 not checking dirstate because of previous errors
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 1 changesets with 0 changes to 3 files
Matt Mackall
verify: clarify misleading fncache message...
r25627 3 warnings encountered!
Gregory Szorc
verify: print hint to run debugrebuildfncache...
r25653 hint: run "hg debugrebuildfncache" to recover from corrupt fncache
Matt Mackall
verify: clarify misleading fncache message...
r25627 6 integrity errors encountered!
Nicolas Dumazet
tests: unify test-verify
r11787 (first damaged changeset appears to be 0)
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Nicolas Dumazet
tests: unify test-verify
r11787
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 $ cd ../../..
Nicolas Dumazet
tests: unify test-verify
r11787 $ cd ..
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110 Set up a repo for testing missing revlog entries
$ hg init missing-entries
$ cd missing-entries
$ echo 0 > file
$ hg ci -Aqm0
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R .hg/store .hg/store-partial
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110 $ echo 1 > file
$ hg ci -Aqm1
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R .hg/store .hg/store-full
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110
Entire changelog missing
$ rm .hg/store/00changelog.*
$ hg verify -q
0: empty or missing changelog
manifest@0: d0b6632564d4 not in changesets
manifest@1: 941fc4534185 not in changesets
Raphaël Gomès
verify: also check dirstate...
r50721 not checking dirstate because of previous errors
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110 3 integrity errors encountered!
(first damaged changeset appears to be 0)
[1]
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R .hg/store-full/. .hg/store
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110
Entire manifest log missing
$ rm .hg/store/00manifest.*
$ hg verify -q
0: empty or missing manifest
Raphaël Gomès
verify: also check dirstate...
r50721 not checking dirstate because of previous errors
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110 1 integrity errors encountered!
(first damaged changeset appears to be 0)
[1]
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R .hg/store-full/. .hg/store
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110
Entire filelog missing
$ rm .hg/store/data/file.*
$ hg verify -q
warning: revlog 'data/file.i' not in fncache!
0: empty or missing file
Martin von Zweigbergk
verify: use similar language for missing manifest and file revisions...
r28114 file@0: manifest refers to unknown revision 362fef284ce2
file@1: manifest refers to unknown revision c10f2164107d
Raphaël Gomès
verify: also check dirstate...
r50721 not checking dirstate because of previous errors
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110 1 warnings encountered!
hint: run "hg debugrebuildfncache" to recover from corrupt fncache
3 integrity errors encountered!
(first damaged changeset appears to be 0)
[1]
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R .hg/store-full/. .hg/store
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110
Entire changelog and manifest log missing
$ rm .hg/store/00changelog.*
$ rm .hg/store/00manifest.*
$ hg verify -q
Gregory Szorc
verify: drop "revlog" from warning message...
r37428 warning: orphan data file 'data/file.i'
Raphaël Gomès
verify: also check dirstate...
r50721 warning: ignoring unknown working parent c5ddb05ab828!
file marked as tracked in p1 but not in manifest1
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110 1 warnings encountered!
Raphaël Gomès
verify: also check dirstate...
r50721 1 integrity errors encountered!
dirstate inconsistent with current parent's manifest
1 dirstate errors
[1]
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R .hg/store-full/. .hg/store
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110
Entire changelog and filelog missing
$ rm .hg/store/00changelog.*
$ rm .hg/store/data/file.*
$ hg verify -q
0: empty or missing changelog
manifest@0: d0b6632564d4 not in changesets
manifest@1: 941fc4534185 not in changesets
warning: revlog 'data/file.i' not in fncache!
?: empty or missing file
Martin von Zweigbergk
verify: use similar language for missing manifest and file revisions...
r28114 file@0: manifest refers to unknown revision 362fef284ce2
file@1: manifest refers to unknown revision c10f2164107d
Raphaël Gomès
verify: also check dirstate...
r50721 not checking dirstate because of previous errors
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110 1 warnings encountered!
hint: run "hg debugrebuildfncache" to recover from corrupt fncache
6 integrity errors encountered!
(first damaged changeset appears to be 0)
[1]
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R .hg/store-full/. .hg/store
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110
Entire manifest log and filelog missing
$ rm .hg/store/00manifest.*
$ rm .hg/store/data/file.*
$ hg verify -q
0: empty or missing manifest
warning: revlog 'data/file.i' not in fncache!
0: empty or missing file
Raphaël Gomès
verify: also check dirstate...
r50721 not checking dirstate because of previous errors
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110 1 warnings encountered!
hint: run "hg debugrebuildfncache" to recover from corrupt fncache
2 integrity errors encountered!
(first damaged changeset appears to be 0)
[1]
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R .hg/store-full/. .hg/store
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110
Changelog missing entry
$ cp -f .hg/store-partial/00changelog.* .hg/store
$ hg verify -q
manifest@?: rev 1 points to nonexistent changeset 1
manifest@?: 941fc4534185 not in changesets
file@?: rev 1 points to nonexistent changeset 1
(expected 0)
Raphaël Gomès
verify: also check dirstate...
r50721 not checking dirstate because of previous errors
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110 1 warnings encountered!
3 integrity errors encountered!
[1]
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R .hg/store-full/. .hg/store
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110
Manifest log missing entry
$ cp -f .hg/store-partial/00manifest.* .hg/store
$ hg verify -q
Martin von Zweigbergk
verify: include "manifest" prefix in a few more places...
r28113 manifest@1: changeset refers to unknown revision 941fc4534185
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110 file@1: c10f2164107d not in manifests
Raphaël Gomès
verify: also check dirstate...
r50721 not checking dirstate because of previous errors
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110 2 integrity errors encountered!
(first damaged changeset appears to be 1)
[1]
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R .hg/store-full/. .hg/store
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110
Filelog missing entry
$ cp -f .hg/store-partial/data/file.* .hg/store/data
$ hg verify -q
Martin von Zweigbergk
verify: use similar language for missing manifest and file revisions...
r28114 file@1: manifest refers to unknown revision c10f2164107d
Raphaël Gomès
verify: also check dirstate...
r50721 not checking dirstate because of previous errors
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110 1 integrity errors encountered!
(first damaged changeset appears to be 1)
[1]
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R .hg/store-full/. .hg/store
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110
Changelog and manifest log missing entry
$ cp -f .hg/store-partial/00changelog.* .hg/store
$ cp -f .hg/store-partial/00manifest.* .hg/store
$ hg verify -q
file@?: rev 1 points to nonexistent changeset 1
(expected 0)
file@?: c10f2164107d not in manifests
Raphaël Gomès
verify: also check dirstate...
r50721 not checking dirstate because of previous errors
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110 1 warnings encountered!
2 integrity errors encountered!
[1]
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R .hg/store-full/. .hg/store
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110
Changelog and filelog missing entry
$ cp -f .hg/store-partial/00changelog.* .hg/store
$ cp -f .hg/store-partial/data/file.* .hg/store/data
$ hg verify -q
manifest@?: rev 1 points to nonexistent changeset 1
manifest@?: 941fc4534185 not in changesets
Martin von Zweigbergk
verify: use similar language for missing manifest and file revisions...
r28114 file@?: manifest refers to unknown revision c10f2164107d
Raphaël Gomès
verify: also check dirstate...
r50721 not checking dirstate because of previous errors
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110 3 integrity errors encountered!
[1]
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R .hg/store-full/. .hg/store
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110
Manifest and filelog missing entry
$ cp -f .hg/store-partial/00manifest.* .hg/store
$ cp -f .hg/store-partial/data/file.* .hg/store/data
$ hg verify -q
Martin von Zweigbergk
verify: include "manifest" prefix in a few more places...
r28113 manifest@1: changeset refers to unknown revision 941fc4534185
Raphaël Gomès
verify: also check dirstate...
r50721 not checking dirstate because of previous errors
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110 1 integrity errors encountered!
(first damaged changeset appears to be 1)
[1]
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R .hg/store-full/. .hg/store
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110
Corrupt changelog base node to cause failure to read revision
$ printf abcd | dd conv=notrunc of=.hg/store/00changelog.i bs=1 seek=16 \
> 2> /dev/null
$ hg verify -q
0: unpacking changeset 08b1860757c2: * (glob)
manifest@?: rev 0 points to unexpected changeset 0
manifest@?: d0b6632564d4 not in changesets
file@?: rev 0 points to unexpected changeset 0
(expected 1)
Raphaël Gomès
verify: also check dirstate...
r50721 not checking dirstate because of previous errors
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110 1 warnings encountered!
4 integrity errors encountered!
(first damaged changeset appears to be 0)
[1]
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R .hg/store-full/. .hg/store
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110
Corrupt manifest log base node to cause failure to read revision
$ printf abcd | dd conv=notrunc of=.hg/store/00manifest.i bs=1 seek=16 \
> 2> /dev/null
$ hg verify -q
Martin von Zweigbergk
verify: include "manifest" prefix in a few more places...
r28113 manifest@0: reading delta d0b6632564d4: * (glob)
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110 file@0: 362fef284ce2 not in manifests
Raphaël Gomès
verify: also check dirstate...
r50721 not checking dirstate because of previous errors
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110 2 integrity errors encountered!
(first damaged changeset appears to be 0)
[1]
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R .hg/store-full/. .hg/store
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110
Corrupt filelog base node to cause failure to read revision
$ printf abcd | dd conv=notrunc of=.hg/store/data/file.i bs=1 seek=16 \
> 2> /dev/null
$ hg verify -q
file@0: unpacking 362fef284ce2: * (glob)
Raphaël Gomès
verify: also check dirstate...
r50721 not checking dirstate because of previous errors
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110 1 integrity errors encountered!
(first damaged changeset appears to be 0)
[1]
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R .hg/store-full/. .hg/store
Martin von Zweigbergk
tests: add tests for missing revlogs and revlog entries...
r28110
$ cd ..
Patrick Mezard
verify: do not choke on valid changelog without manifest...
r17385 test changelog without a manifest
Nicolas Dumazet
tests: unify test-verify
r11787
$ hg init b
$ cd b
Patrick Mezard
verify: do not choke on valid changelog without manifest...
r17385 $ hg branch foo
marked working directory as branch foo
(branches are permanent and global, did you want a bookmark?)
$ hg ci -m branchfoo
Raphaël Gomès
tests: use the `--quiet` flag for verify when applicable...
r50720 $ hg verify -q
Patrick Mezard
verify: do not choke on valid changelog without manifest...
r17385
test revlog corruption
Nicolas Dumazet
tests: unify test-verify
r11787
$ touch a
$ hg add a
$ hg ci -m a
$ echo 'corrupted' > b
$ dd if=.hg/store/data/a.i of=start bs=1 count=20 2>/dev/null
$ cat start b > .hg/store/data/a.i
Raphaël Gomès
tests: use the `--quiet` flag for verify when applicable...
r50720 $ hg verify -q
Matt Harbison
revlog: use the user facing filename as the display_id for filelogs...
r50429 a@1: broken revlog! (index a is corrupted)
Gregory Szorc
verify: drop "revlog" from warning message...
r37428 warning: orphan data file 'data/a.i'
Raphaël Gomès
verify: also check dirstate...
r50721 not checking dirstate because of previous errors
Nicolas Dumazet
tests: unify test-verify
r11787 1 warnings encountered!
1 integrity errors encountered!
Patrick Mezard
verify: do not choke on valid changelog without manifest...
r17385 (first damaged changeset appears to be 1)
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Nicolas Dumazet
tests: unify test-verify
r11787
Thomas Arendsen Hein
merge with stable
r12172 $ cd ..
test revlog format 0
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ revlog-formatv0.py
Thomas Arendsen Hein
merge with stable
r12172 $ cd formatv0
$ hg verify
repository uses revlog format 0
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
Raphaël Gomès
verify: also check dirstate...
r50721 checking dirstate
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 1 changesets with 1 changes to 1 files
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912 $ cd ..
Jun Wu
verify: add a config option to skip certain flag processors...
r32288
test flag processor and skipflags
$ hg init skipflags
$ cd skipflags
$ cat >> .hg/hgrc <<EOF
> [extensions]
Martin von Zweigbergk
tests: fix typo in "flagprocesor"
r32572 > flagprocessor=$RUNTESTDIR/flagprocessorext.py
Jun Wu
verify: add a config option to skip certain flag processors...
r32288 > EOF
$ echo '[BASE64]content' > base64
$ hg commit -Aqm 'flag processor content' base64
Raphaël Gomès
tests: use the `--quiet` flag for verify when applicable...
r50720 $ hg verify -q
Jun Wu
verify: add a config option to skip certain flag processors...
r32288
$ cat >> $TESTTMP/break-base64.py <<EOF
> import base64
> base64.b64decode=lambda x: x
> EOF
$ cat >> .hg/hgrc <<EOF
> breakbase64=$TESTTMP/break-base64.py
> EOF
Raphaël Gomès
tests: use the `--quiet` flag for verify when applicable...
r50720 $ hg verify -q
Matt Harbison
revlog: use the user facing filename as the display_id for filelogs...
r50429 base64@0: unpacking 794cee7777cb: integrity check failed on base64:0
Raphaël Gomès
verify: also check dirstate...
r50721 not checking dirstate because of previous errors
Jun Wu
verify: add a config option to skip certain flag processors...
r32288 1 integrity errors encountered!
(first damaged changeset appears to be 0)
[1]
Raphaël Gomès
tests: use the `--quiet` flag for verify when applicable...
r50720 $ hg verify --config verify.skipflags=2147483647 -q
Jun Wu
verify: add a config option to skip certain flag processors...
r32288