tests/test-verify.t
author Yuya Nishihara <yuya@tcha.org>
Tue, 24 Mar 2015 00:28:28 +0900
changeset 26638 7afaf2566e25
parent 25653 9d1e04f5dca7
child 28110 2b41f8655bbc
permissions -rw-r--r--
revset: add optional offset argument to limit() predicate It's common for GUI or web frontend to fetch chunk of revisions per batch size. Previously it was possible only if revisions were sorted by revision number. $ hg log -r 'limit({revspec} & :{last_known}, 101)' So this patch introduces a general way to retrieve chunk of revisions after skipping offset revisions. $ hg log -r 'limit({revspec}, 100, {last_count})' This is a dumb implementation. We can optimize it for baseset and spanset later.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11787
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
     1
prepare repo
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
     2
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
     3
  $ hg init a
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
     4
  $ cd a
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
     5
  $ echo "some text" > FOO.txt
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
     6
  $ echo "another text" > bar.txt
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
     7
  $ echo "more text" > QUICK.txt
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
     8
  $ hg add
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
     9
  adding FOO.txt
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    10
  adding QUICK.txt
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    11
  adding bar.txt
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    12
  $ hg ci -mtest1
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    13
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    14
verify
6893
c3368278f86c add test-verify
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
    15
11787
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    16
  $ hg verify
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    17
  checking changesets
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    18
  checking manifests
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    19
  crosschecking files in changesets and manifests
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    20
  checking files
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    21
  3 files, 1 changesets, 3 total revisions
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    22
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    23
verify with journal
6893
c3368278f86c add test-verify
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
    24
11787
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    25
  $ touch .hg/store/journal
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    26
  $ hg verify
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    27
  abandoned transaction found - run hg recover
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    28
  checking changesets
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    29
  checking manifests
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    30
  crosschecking files in changesets and manifests
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    31
  checking files
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    32
  3 files, 1 changesets, 3 total revisions
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    33
  $ rm .hg/store/journal
6893
c3368278f86c add test-verify
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
    34
11787
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    35
introduce some bugs in repo
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    36
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    37
  $ cd .hg/store/data
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    38
  $ mv _f_o_o.txt.i X_f_o_o.txt.i
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    39
  $ mv bar.txt.i xbar.txt.i
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    40
  $ rm _q_u_i_c_k.txt.i
9690
b33d70849a20 verify: report existence of journal
Sune Foldager <cryo@cyanite.org>
parents: 8720
diff changeset
    41
11787
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    42
  $ hg verify
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    43
  checking changesets
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    44
  checking manifests
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    45
  crosschecking files in changesets and manifests
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    46
  checking files
25627
9573d8f346f1 verify: clarify misleading fncache message
Matt Mackall <mpm@selenic.com>
parents: 25472
diff changeset
    47
   warning: revlog 'data/FOO.txt.i' not in fncache!
11787
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    48
   0: empty or missing FOO.txt
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    49
   FOO.txt@0: f62022d3d590 in manifests not found
25627
9573d8f346f1 verify: clarify misleading fncache message
Matt Mackall <mpm@selenic.com>
parents: 25472
diff changeset
    50
   warning: revlog 'data/QUICK.txt.i' not in fncache!
11787
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    51
   0: empty or missing QUICK.txt
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    52
   QUICK.txt@0: 88b857db8eba in manifests not found
25627
9573d8f346f1 verify: clarify misleading fncache message
Matt Mackall <mpm@selenic.com>
parents: 25472
diff changeset
    53
   warning: revlog 'data/bar.txt.i' not in fncache!
11787
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    54
   0: empty or missing bar.txt
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    55
   bar.txt@0: 256559129457 in manifests not found
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    56
  3 files, 1 changesets, 0 total revisions
25627
9573d8f346f1 verify: clarify misleading fncache message
Matt Mackall <mpm@selenic.com>
parents: 25472
diff changeset
    57
  3 warnings encountered!
25653
9d1e04f5dca7 verify: print hint to run debugrebuildfncache
Gregory Szorc <gregory.szorc@gmail.com>
parents: 25627
diff changeset
    58
  hint: run "hg debugrebuildfncache" to recover from corrupt fncache
25627
9573d8f346f1 verify: clarify misleading fncache message
Matt Mackall <mpm@selenic.com>
parents: 25472
diff changeset
    59
  6 integrity errors encountered!
11787
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    60
  (first damaged changeset appears to be 0)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12172
diff changeset
    61
  [1]
6893
c3368278f86c add test-verify
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
    62
16912
6ef3107c661e tests: cleanup of tests that got lost in their own nested directories
Mads Kiilerich <mads@kiilerich.com>
parents: 12327
diff changeset
    63
  $ cd ../../..
11787
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    64
  $ cd ..
6893
c3368278f86c add test-verify
Adrian Buehlmann <adrian@cadifra.com>
parents:
diff changeset
    65
17385
b32a30da608d verify: do not choke on valid changelog without manifest
Patrick Mezard <patrick@mezard.eu>
parents: 16912
diff changeset
    66
test changelog without a manifest
8016
baaa832fd253 raise RevlogError when parser can't parse the revlog index
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 6898
diff changeset
    67
11787
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    68
  $ hg init b
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    69
  $ cd b
17385
b32a30da608d verify: do not choke on valid changelog without manifest
Patrick Mezard <patrick@mezard.eu>
parents: 16912
diff changeset
    70
  $ hg branch foo
b32a30da608d verify: do not choke on valid changelog without manifest
Patrick Mezard <patrick@mezard.eu>
parents: 16912
diff changeset
    71
  marked working directory as branch foo
b32a30da608d verify: do not choke on valid changelog without manifest
Patrick Mezard <patrick@mezard.eu>
parents: 16912
diff changeset
    72
  (branches are permanent and global, did you want a bookmark?)
b32a30da608d verify: do not choke on valid changelog without manifest
Patrick Mezard <patrick@mezard.eu>
parents: 16912
diff changeset
    73
  $ hg ci -m branchfoo
b32a30da608d verify: do not choke on valid changelog without manifest
Patrick Mezard <patrick@mezard.eu>
parents: 16912
diff changeset
    74
  $ hg verify
b32a30da608d verify: do not choke on valid changelog without manifest
Patrick Mezard <patrick@mezard.eu>
parents: 16912
diff changeset
    75
  checking changesets
b32a30da608d verify: do not choke on valid changelog without manifest
Patrick Mezard <patrick@mezard.eu>
parents: 16912
diff changeset
    76
  checking manifests
b32a30da608d verify: do not choke on valid changelog without manifest
Patrick Mezard <patrick@mezard.eu>
parents: 16912
diff changeset
    77
  crosschecking files in changesets and manifests
b32a30da608d verify: do not choke on valid changelog without manifest
Patrick Mezard <patrick@mezard.eu>
parents: 16912
diff changeset
    78
  checking files
b32a30da608d verify: do not choke on valid changelog without manifest
Patrick Mezard <patrick@mezard.eu>
parents: 16912
diff changeset
    79
  0 files, 1 changesets, 0 total revisions
b32a30da608d verify: do not choke on valid changelog without manifest
Patrick Mezard <patrick@mezard.eu>
parents: 16912
diff changeset
    80
b32a30da608d verify: do not choke on valid changelog without manifest
Patrick Mezard <patrick@mezard.eu>
parents: 16912
diff changeset
    81
test revlog corruption
8016
baaa832fd253 raise RevlogError when parser can't parse the revlog index
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 6898
diff changeset
    82
11787
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    83
  $ touch a
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    84
  $ hg add a
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    85
  $ hg ci -m a
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    86
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    87
  $ echo 'corrupted' > b
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    88
  $ dd if=.hg/store/data/a.i of=start bs=1 count=20 2>/dev/null
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    89
  $ cat start b > .hg/store/data/a.i
8016
baaa832fd253 raise RevlogError when parser can't parse the revlog index
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 6898
diff changeset
    90
11787
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    91
  $ hg verify
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    92
  checking changesets
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    93
  checking manifests
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    94
  crosschecking files in changesets and manifests
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    95
  checking files
17385
b32a30da608d verify: do not choke on valid changelog without manifest
Patrick Mezard <patrick@mezard.eu>
parents: 16912
diff changeset
    96
   a@1: broken revlog! (index data/a.i is corrupted)
11787
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    97
  warning: orphan revlog 'data/a.i'
17385
b32a30da608d verify: do not choke on valid changelog without manifest
Patrick Mezard <patrick@mezard.eu>
parents: 16912
diff changeset
    98
  1 files, 2 changesets, 0 total revisions
11787
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
    99
  1 warnings encountered!
7830e693b704 tests: unify test-verify
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9690
diff changeset
   100
  1 integrity errors encountered!
17385
b32a30da608d verify: do not choke on valid changelog without manifest
Patrick Mezard <patrick@mezard.eu>
parents: 16912
diff changeset
   101
  (first damaged changeset appears to be 1)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12172
diff changeset
   102
  [1]
8016
baaa832fd253 raise RevlogError when parser can't parse the revlog index
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 6898
diff changeset
   103
12172
74f54b7775f2 merge with stable
Thomas Arendsen Hein <thomas@intevation.de>
parents: 12170 11787
diff changeset
   104
  $ cd ..
12170
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents: 9690
diff changeset
   105
12172
74f54b7775f2 merge with stable
Thomas Arendsen Hein <thomas@intevation.de>
parents: 12170 11787
diff changeset
   106
test revlog format 0
12170
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents: 9690
diff changeset
   107
25472
4d2b9b304ad0 tests: drop explicit $TESTDIR from executables
Matt Mackall <mpm@selenic.com>
parents: 17385
diff changeset
   108
  $ revlog-formatv0.py
12172
74f54b7775f2 merge with stable
Thomas Arendsen Hein <thomas@intevation.de>
parents: 12170 11787
diff changeset
   109
  $ cd formatv0
74f54b7775f2 merge with stable
Thomas Arendsen Hein <thomas@intevation.de>
parents: 12170 11787
diff changeset
   110
  $ hg verify
74f54b7775f2 merge with stable
Thomas Arendsen Hein <thomas@intevation.de>
parents: 12170 11787
diff changeset
   111
  repository uses revlog format 0
74f54b7775f2 merge with stable
Thomas Arendsen Hein <thomas@intevation.de>
parents: 12170 11787
diff changeset
   112
  checking changesets
74f54b7775f2 merge with stable
Thomas Arendsen Hein <thomas@intevation.de>
parents: 12170 11787
diff changeset
   113
  checking manifests
74f54b7775f2 merge with stable
Thomas Arendsen Hein <thomas@intevation.de>
parents: 12170 11787
diff changeset
   114
  crosschecking files in changesets and manifests
74f54b7775f2 merge with stable
Thomas Arendsen Hein <thomas@intevation.de>
parents: 12170 11787
diff changeset
   115
  checking files
74f54b7775f2 merge with stable
Thomas Arendsen Hein <thomas@intevation.de>
parents: 12170 11787
diff changeset
   116
  1 files, 1 changesets, 1 total revisions
16912
6ef3107c661e tests: cleanup of tests that got lost in their own nested directories
Mads Kiilerich <mads@kiilerich.com>
parents: 12327
diff changeset
   117
  $ cd ..