Mercurial > hg
comparison tests/test-remotefilelog-corrupt-cache.t @ 40495:3a333a582d7b
remotefilelog: import pruned-down remotefilelog extension from hg-experimental
This is remotefilelog as of my recent patches for compatibility with
current tip of hg, minus support for old versions of Mercurial and
some FB-specific features like their treemanifest extension and
fetching linkrev data from a patched phabricator. The file extutil.py
moved from hgext3rd to remotefilelog.
This is not yet ready to be landed, consider it a preview for
now. Planned changes include:
* replace lz4 with zstd
* rename some capabilities, requirements and wireproto commands to mark
them as experimental
* consolidate bits of shallowutil with related functions (eg readfile)
I'm certainly open to other (small) changes, but my rough mission is
to land this largely as-is so we can use it as a model of the
functionality we need going forward for lazy-fetching of file contents
from a server.
# no-check-commit because of a few foo_bar functions
Differential Revision: https://phab.mercurial-scm.org/D4782
author | Augie Fackler <augie@google.com> |
---|---|
date | Thu, 27 Sep 2018 13:03:19 -0400 |
parents | |
children | 95a079ea1e19 |
comparison
equal
deleted
inserted
replaced
40494:9aeb9e2d28a7 | 40495:3a333a582d7b |
---|---|
1 $ PYTHONPATH=$TESTDIR/..:$PYTHONPATH | |
2 $ export PYTHONPATH | |
3 | |
4 $ . "$TESTDIR/remotefilelog-library.sh" | |
5 | |
6 $ hginit master | |
7 $ cd master | |
8 $ cat >> .hg/hgrc <<EOF | |
9 > [remotefilelog] | |
10 > server=True | |
11 > EOF | |
12 $ echo x > x | |
13 $ echo y > y | |
14 $ echo z > z | |
15 $ hg commit -qAm xy | |
16 | |
17 $ cd .. | |
18 | |
19 $ hgcloneshallow ssh://user@dummy/master shallow -q | |
20 3 files fetched over 1 fetches - (3 misses, 0.00% hit ratio) over *s (glob) | |
21 $ cd shallow | |
22 | |
23 Verify corrupt cache handling repairs by default | |
24 | |
25 $ hg up -q null | |
26 $ chmod u+w $CACHEDIR/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/1406e74118627694268417491f018a4a883152f0 | |
27 $ echo x > $CACHEDIR/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/1406e74118627694268417491f018a4a883152f0 | |
28 $ hg up tip | |
29 3 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
30 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob) | |
31 | |
32 Verify corrupt cache error message | |
33 | |
34 $ hg up -q null | |
35 $ cat >> .hg/hgrc <<EOF | |
36 > [remotefilelog] | |
37 > validatecache=off | |
38 > EOF | |
39 $ chmod u+w $CACHEDIR/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/1406e74118627694268417491f018a4a883152f0 | |
40 $ echo x > $CACHEDIR/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/1406e74118627694268417491f018a4a883152f0 | |
41 $ hg up tip 2>&1 | egrep "^RuntimeError" | |
42 RuntimeError: unexpected remotefilelog header: illegal format | |
43 | |
44 Verify detection and remediation when remotefilelog.validatecachelog is set | |
45 | |
46 $ cat >> .hg/hgrc <<EOF | |
47 > [remotefilelog] | |
48 > validatecachelog=$PWD/.hg/remotefilelog_cache.log | |
49 > validatecache=strict | |
50 > EOF | |
51 $ chmod u+w $CACHEDIR/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/1406e74118627694268417491f018a4a883152f0 | |
52 $ echo x > $CACHEDIR/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/1406e74118627694268417491f018a4a883152f0 | |
53 $ hg up tip | |
54 3 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
55 1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob) | |
56 $ cat .hg/remotefilelog_cache.log | |
57 corrupt $TESTTMP/hgcache/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/1406e74118627694268417491f018a4a883152f0 during contains | |
58 | |
59 Verify handling of corrupt server cache | |
60 | |
61 $ rm -f ../master/.hg/remotefilelogcache/y/076f5e2225b3ff0400b98c92aa6cdf403ee24cca | |
62 $ touch ../master/.hg/remotefilelogcache/y/076f5e2225b3ff0400b98c92aa6cdf403ee24cca | |
63 $ clearcache | |
64 $ hg prefetch -r . | |
65 3 files fetched over 1 fetches - (3 misses, 0.00% hit ratio) over *s (glob) | |
66 $ test -s ../master/.hg/remotefilelogcache/y/076f5e2225b3ff0400b98c92aa6cdf403ee24cca | |
67 $ hg debugremotefilelog $CACHEDIR/master/95/cb0bfd2977c761298d9624e4b4d4c72a39974a/076f5e2225b3ff0400b98c92aa6cdf403ee24cca | |
68 size: 2 bytes | |
69 path: $TESTTMP/hgcache/master/95/cb0bfd2977c761298d9624e4b4d4c72a39974a/076f5e2225b3ff0400b98c92aa6cdf403ee24cca | |
70 key: 076f5e2225b3 | |
71 | |
72 node => p1 p2 linknode copyfrom | |
73 076f5e2225b3 => 000000000000 000000000000 f3d0bb0d1e48 |