tests/test-locate.t
author Mads Kiilerich <madski@unity3d.com>
Mon, 28 Jan 2013 15:19:44 +0100
branchstable
changeset 18488 a977b42df8b3
parent 16912 6ef3107c661e
child 22423 edf07a804ac4
permissions -rw-r--r--
largefiles: don't verify largefile hashes on servers when processing statlfile When changesets referencing largefiles are pushed then the corresponding largefiles will be pushed too - unless the target already has them. The client will use statlfile to make sure it only sends largefiles that the target doesn't have. The server would however on every statlfile check that the content of the largefile had the expected hash. What should be cheap thus became an expensive operation that trashed the disk and the cache. Largefile hashes are already checked by putlfile before being stored on the server. A server should thus be able to keep its largefile store free of errors - even more than it can keep revlogs free of errors. Verification should happen when running 'hg verify' locally on the server. Rehashing every largefile on every remote stat is too expensive. Clients will also stat lfiles before downloading them. When the server verified the hash in stat it meant that it had to read the file twice to serve it. With this change the server will assume its own hashes are ok without checking them on every statlfile. Some consequences of this change: - in case of server side corruption the problem will be detected by the existing check on the client side - not on server side - clients that could upload an uncorrupted largefile when pushing will no longer magically heal the server (and break hardlinks) - a client will now only upload its uncorrupted files after the corrupted file has been removed on the server side - client side verify will no longer report corruption in files it doesn't have (Issue3123 discussed related problems - and how they have been fixed.)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
16912
6ef3107c661e tests: cleanup of tests that got lost in their own nested directories
Mads Kiilerich <mads@kiilerich.com>
parents: 15447
diff changeset
     1
  $ hg init repo
6ef3107c661e tests: cleanup of tests that got lost in their own nested directories
Mads Kiilerich <mads@kiilerich.com>
parents: 15447
diff changeset
     2
  $ cd repo
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
     3
  $ echo 0 > a
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
     4
  $ echo 0 > b
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
     5
  $ echo 0 > t.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
     6
  $ mkdir t
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
     7
  $ echo 0 > t/x
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
     8
  $ echo 0 > t/b
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
     9
  $ echo 0 > t/e.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    10
  $ mkdir dir.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    11
  $ echo 0 > dir.h/foo
4234
fe0c0a317c09 make the output of test-locate more readable
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4196
diff changeset
    12
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    13
  $ hg ci -A -m m
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    14
  adding a
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    15
  adding b
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    16
  adding dir.h/foo
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    17
  adding t.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    18
  adding t/b
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    19
  adding t/e.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    20
  adding t/x
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    21
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    22
  $ touch nottracked
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    23
12365
22f3353bcc36 tests: cleanup exit code handling in unified tests
Matt Mackall <mpm@selenic.com>
parents: 12316
diff changeset
    24
  $ hg locate a
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    25
  a
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    26
12365
22f3353bcc36 tests: cleanup exit code handling in unified tests
Matt Mackall <mpm@selenic.com>
parents: 12316
diff changeset
    27
  $ hg locate NONEXISTENT
22f3353bcc36 tests: cleanup exit code handling in unified tests
Matt Mackall <mpm@selenic.com>
parents: 12316
diff changeset
    28
  [1]
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    29
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    30
  $ hg locate
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    31
  a
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    32
  b
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    33
  dir.h/foo
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    34
  t.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    35
  t/b
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    36
  t/e.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    37
  t/x
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    38
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    39
  $ hg rm a
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    40
  $ hg ci -m m
4234
fe0c0a317c09 make the output of test-locate more readable
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4196
diff changeset
    41
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    42
  $ hg locate a
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12206
diff changeset
    43
  [1]
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    44
  $ hg locate NONEXISTENT
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12206
diff changeset
    45
  [1]
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    46
  $ hg locate relpath:NONEXISTENT
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12206
diff changeset
    47
  [1]
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    48
  $ hg locate
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    49
  b
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    50
  dir.h/foo
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    51
  t.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    52
  t/b
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    53
  t/e.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    54
  t/x
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    55
  $ hg locate -r 0 a
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    56
  a
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    57
  $ hg locate -r 0 NONEXISTENT
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12206
diff changeset
    58
  [1]
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    59
  $ hg locate -r 0 relpath:NONEXISTENT
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12206
diff changeset
    60
  [1]
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    61
  $ hg locate -r 0
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    62
  a
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    63
  b
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    64
  dir.h/foo
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    65
  t.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    66
  t/b
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    67
  t/e.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    68
  t/x
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    69
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    70
-I/-X with relative path should work:
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    71
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    72
  $ cd t
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    73
  $ hg locate
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    74
  b
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    75
  dir.h/foo
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    76
  t.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    77
  t/b
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    78
  t/e.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    79
  t/x
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    80
  $ hg locate -I ../t
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    81
  t/b
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    82
  t/e.h
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    83
  t/x
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    84
12399
4fee1fd3de9a tests: added a short description to issue numbers
Martin Geisler <mg@aragost.com>
parents: 12365
diff changeset
    85
Issue294: hg remove --after dir fails when dir.* also exists
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    86
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    87
  $ cd ..
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    88
  $ rm -r t
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    89
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    90
  $ hg locate 't/**'
15447
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
    91
  t/b (glob)
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
    92
  t/e.h (glob)
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
    93
  t/x (glob)
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    94
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    95
  $ mkdir otherdir
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    96
  $ cd otherdir
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    97
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    98
  $ hg locate b
15447
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
    99
  ../b (glob)
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   100
  ../t/b (glob)
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   101
  $ hg locate '*.h'
15447
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   102
  ../t.h (glob)
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   103
  ../t/e.h (glob)
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   104
  $ hg locate path:t/x
15447
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   105
  ../t/x (glob)
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   106
  $ hg locate 're:.*\.h$'
15447
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   107
  ../t.h (glob)
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   108
  ../t/e.h (glob)
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   109
  $ hg locate -r 0 b
15447
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   110
  ../b (glob)
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   111
  ../t/b (glob)
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   112
  $ hg locate -r 0 '*.h'
15447
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   113
  ../t.h (glob)
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   114
  ../t/e.h (glob)
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   115
  $ hg locate -r 0 path:t/x
15447
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   116
  ../t/x (glob)
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   117
  $ hg locate -r 0 're:.*\.h$'
15447
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   118
  ../t.h (glob)
9910f60a37ee tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   119
  ../t/e.h (glob)
12206
844d25bf65a3 tests: unify test-locate
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   120
16912
6ef3107c661e tests: cleanup of tests that got lost in their own nested directories
Mads Kiilerich <mads@kiilerich.com>
parents: 15447
diff changeset
   121
  $ cd ../..