tests/test-push.t
author Gregory Szorc <gregory.szorc@gmail.com>
Fri, 13 Jan 2017 20:16:56 -0800
changeset 30818 4c0a5a256ae8
parent 30295 e58acb4fc510
child 33145 78fc540c53e1
child 33637 08cfc4baf3ba
permissions -rw-r--r--
localrepo: experimental support for non-zlib revlog compression The final part of integrating the compression manager APIs into revlog storage is the plumbing for repositories to advertise they are using non-zlib storage and for revlogs to instantiate a non-zlib compression engine. The main intent of the compression manager work was to zstd all of the things. Adding zstd to revlogs has proved to be more involved than other places because revlogs are... special. Very small inputs and the use of delta chains (which are themselves a form of compression) are a completely different use case from streaming compression, which bundles and the wire protocol employ. I've conducted numerous experiments with zstd in revlogs and have yet to formalize compression settings and a storage architecture that I'm confident I won't regret later. In other words, I'm not yet ready to commit to a new mechanism for using zstd - or any other compression format - in revlogs. That being said, having some support for zstd (and other compression formats) in revlogs in core is beneficial. It can allow others to conduct experiments. This patch introduces *highly experimental* support for non-zlib compression formats in revlogs. Introduced is a config option to control which compression engine to use. Also introduced is a namespace of "exp-compression-*" requirements to denote support for non-zlib compression in revlogs. I've prefixed the namespace with "exp-" (short for "experimental") because I'm not confident of the requirements "schema" and in no way want to give the illusion of supporting these requirements in the future. I fully intend to drop support for these requirements once we figure out what we're doing with zstd in revlogs. A good portion of the patch is teaching the requirements system about registered compression engines and passing the requested compression engine as an opener option so revlogs can instantiate the proper compression engine for new operations. That's a verbose way of saying "we can now use zstd in revlogs!" On an `hg pull` conversion of the mozilla-unified repo with no extra redelta settings (like aggressivemergedeltas), we can see the impact of zstd vs zlib in revlogs: $ hg perfrevlogchunks -c ! chunk ! wall 2.032052 comb 2.040000 user 1.990000 sys 0.050000 (best of 5) ! wall 1.866360 comb 1.860000 user 1.820000 sys 0.040000 (best of 6) ! chunk batch ! wall 1.877261 comb 1.870000 user 1.860000 sys 0.010000 (best of 6) ! wall 1.705410 comb 1.710000 user 1.690000 sys 0.020000 (best of 6) $ hg perfrevlogchunks -m ! chunk ! wall 2.721427 comb 2.720000 user 2.640000 sys 0.080000 (best of 4) ! wall 2.035076 comb 2.030000 user 1.950000 sys 0.080000 (best of 5) ! chunk batch ! wall 2.614561 comb 2.620000 user 2.580000 sys 0.040000 (best of 4) ! wall 1.910252 comb 1.910000 user 1.880000 sys 0.030000 (best of 6) $ hg perfrevlog -c -d 1 ! wall 4.812885 comb 4.820000 user 4.800000 sys 0.020000 (best of 3) ! wall 4.699621 comb 4.710000 user 4.700000 sys 0.010000 (best of 3) $ hg perfrevlog -m -d 1000 ! wall 34.252800 comb 34.250000 user 33.730000 sys 0.520000 (best of 3) ! wall 24.094999 comb 24.090000 user 23.320000 sys 0.770000 (best of 3) Only modest wins for the changelog. But manifest reading is significantly faster. What's going on? One reason might be data volume. zstd decompresses faster. So given more bytes, it will put more distance between it and zlib. Another reason is size. In the current design, zstd revlogs are *larger*: debugcreatestreamclonebundle (size in bytes) zlib: 1,638,852,492 zstd: 1,680,601,332 I haven't investigated this fully, but I reckon a significant cause of larger revlogs is that the zstd frame/header has more bytes than zlib's. For very small inputs or data that doesn't compress well, we'll tend to store more uncompressed chunks than with zlib (because the compressed size isn't smaller than original). This will make revlog reading faster because it is doing less decompression. Moving on to bundle performance: $ hg bundle -a -t none-v2 (total CPU time) zlib: 102.79s zstd: 97.75s So, marginal CPU decrease for reading all chunks in all revlogs (this is somewhat disappointing). $ hg bundle -a -t <engine>-v2 (total CPU time) zlib: 191.59s zstd: 115.36s This last test effectively measures the difference between zlib->zlib and zstd->zstd for revlogs to bundle. This is a rough approximation of what a server does during `hg clone`. There are some promising results for zstd. But not enough for me to feel comfortable advertising it to users. We'll get there...
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
30293
a8d2071c3373 test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30292
diff changeset
     1
==================================
a8d2071c3373 test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30292
diff changeset
     2
Basic testing for the push command
a8d2071c3373 test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30292
diff changeset
     3
==================================
a8d2071c3373 test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30292
diff changeset
     4
a8d2071c3373 test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30292
diff changeset
     5
Testing of the '--rev' flag
a8d2071c3373 test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30292
diff changeset
     6
===========================
a8d2071c3373 test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30292
diff changeset
     7
a8d2071c3373 test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30292
diff changeset
     8
  $ hg init test-revflag
a8d2071c3373 test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30292
diff changeset
     9
  $ hg -R test-revflag unbundle "$TESTDIR/bundles/remote.hg"
14117
07708f4171f1 tests: create a bundle to bootstrap tests using a remote repository
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 12279
diff changeset
    10
  adding changesets
07708f4171f1 tests: create a bundle to bootstrap tests using a remote repository
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 12279
diff changeset
    11
  adding manifests
07708f4171f1 tests: create a bundle to bootstrap tests using a remote repository
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 12279
diff changeset
    12
  adding file changes
07708f4171f1 tests: create a bundle to bootstrap tests using a remote repository
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 12279
diff changeset
    13
  added 9 changesets with 7 changes to 4 files (+1 heads)
07708f4171f1 tests: create a bundle to bootstrap tests using a remote repository
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 12279
diff changeset
    14
  (run 'hg heads' to see heads, 'hg merge' to merge)
1781
284fc722c342 add an optional argument to push only the specified revisions (push -r)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
    15
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    16
  $ for i in 0 1 2 3 4 5 6 7 8; do
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    17
  >    echo
30293
a8d2071c3373 test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30292
diff changeset
    18
  >    hg init test-revflag-"$i"
a8d2071c3373 test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30292
diff changeset
    19
  >    hg -R test-revflag push -r "$i" test-revflag-"$i"
a8d2071c3373 test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30292
diff changeset
    20
  >    hg -R test-revflag-"$i" verify
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    21
  > done
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    22
  
30293
a8d2071c3373 test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30292
diff changeset
    23
  pushing to test-revflag-0
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    24
  searching for changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    25
  adding changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    26
  adding manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    27
  adding file changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    28
  added 1 changesets with 1 changes to 1 files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    29
  checking changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    30
  checking manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    31
  crosschecking files in changesets and manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    32
  checking files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    33
  1 files, 1 changesets, 1 total revisions
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    34
  
30293
a8d2071c3373 test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30292
diff changeset
    35
  pushing to test-revflag-1
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    36
  searching for changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    37
  adding changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    38
  adding manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    39
  adding file changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    40
  added 2 changesets with 2 changes to 1 files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    41
  checking changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    42
  checking manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    43
  crosschecking files in changesets and manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    44
  checking files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    45
  1 files, 2 changesets, 2 total revisions
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    46
  
30293
a8d2071c3373 test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30292
diff changeset
    47
  pushing to test-revflag-2
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    48
  searching for changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    49
  adding changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    50
  adding manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    51
  adding file changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    52
  added 3 changesets with 3 changes to 1 files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    53
  checking changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    54
  checking manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    55
  crosschecking files in changesets and manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    56
  checking files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    57
  1 files, 3 changesets, 3 total revisions
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    58
  
30293
a8d2071c3373 test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30292
diff changeset
    59
  pushing to test-revflag-3
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    60
  searching for changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    61
  adding changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    62
  adding manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    63
  adding file changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    64
  added 4 changesets with 4 changes to 1 files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    65
  checking changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    66
  checking manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    67
  crosschecking files in changesets and manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    68
  checking files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    69
  1 files, 4 changesets, 4 total revisions
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    70
  
30293
a8d2071c3373 test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30292
diff changeset
    71
  pushing to test-revflag-4
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    72
  searching for changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    73
  adding changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    74
  adding manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    75
  adding file changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    76
  added 2 changesets with 2 changes to 1 files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    77
  checking changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    78
  checking manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    79
  crosschecking files in changesets and manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    80
  checking files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    81
  1 files, 2 changesets, 2 total revisions
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    82
  
30293
a8d2071c3373 test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30292
diff changeset
    83
  pushing to test-revflag-5
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    84
  searching for changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    85
  adding changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    86
  adding manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    87
  adding file changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    88
  added 3 changesets with 3 changes to 1 files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    89
  checking changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    90
  checking manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    91
  crosschecking files in changesets and manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    92
  checking files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    93
  1 files, 3 changesets, 3 total revisions
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    94
  
30293
a8d2071c3373 test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30292
diff changeset
    95
  pushing to test-revflag-6
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    96
  searching for changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    97
  adding changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    98
  adding manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
    99
  adding file changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   100
  added 4 changesets with 5 changes to 2 files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   101
  checking changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   102
  checking manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   103
  crosschecking files in changesets and manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   104
  checking files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   105
  2 files, 4 changesets, 5 total revisions
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   106
  
30293
a8d2071c3373 test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30292
diff changeset
   107
  pushing to test-revflag-7
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   108
  searching for changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   109
  adding changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   110
  adding manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   111
  adding file changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   112
  added 5 changesets with 6 changes to 3 files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   113
  checking changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   114
  checking manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   115
  crosschecking files in changesets and manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   116
  checking files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   117
  3 files, 5 changesets, 6 total revisions
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   118
  
30293
a8d2071c3373 test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30292
diff changeset
   119
  pushing to test-revflag-8
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   120
  searching for changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   121
  adding changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   122
  adding manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   123
  adding file changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   124
  added 5 changesets with 5 changes to 2 files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   125
  checking changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   126
  checking manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   127
  crosschecking files in changesets and manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   128
  checking files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   129
  2 files, 5 changesets, 5 total revisions
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   130
30293
a8d2071c3373 test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30292
diff changeset
   131
  $ cd test-revflag-8
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   132
30293
a8d2071c3373 test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30292
diff changeset
   133
  $ hg pull ../test-revflag-7
a8d2071c3373 test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30292
diff changeset
   134
  pulling from ../test-revflag-7
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   135
  searching for changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   136
  adding changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   137
  adding manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   138
  adding file changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   139
  added 4 changesets with 2 changes to 3 files (+1 heads)
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   140
  (run 'hg heads' to see heads, 'hg merge' to merge)
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   141
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   142
  $ hg verify
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   143
  checking changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   144
  checking manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   145
  crosschecking files in changesets and manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   146
  checking files
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   147
  4 files, 9 changesets, 7 total revisions
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 3853
diff changeset
   148
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 16350
diff changeset
   149
  $ cd ..
30294
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   150
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   151
Test server side validation during push
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   152
=======================================
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   153
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   154
  $ hg init test-validation
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   155
  $ cd test-validation
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   156
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   157
  $ cat > .hg/hgrc <<EOF
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   158
  > [server]
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   159
  > validate=1
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   160
  > EOF
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   161
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   162
  $ echo alpha > alpha
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   163
  $ echo beta > beta
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   164
  $ hg addr
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   165
  adding alpha
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   166
  adding beta
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   167
  $ hg ci -m 1
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   168
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   169
  $ cd ..
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   170
  $ hg clone test-validation test-validation-clone
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   171
  updating to branch default
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   172
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   173
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   174
Test spurious filelog entries:
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   175
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   176
  $ cd test-validation-clone
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   177
  $ echo blah >> beta
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   178
  $ cp .hg/store/data/beta.i tmp1
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   179
  $ hg ci -m 2
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   180
  $ cp .hg/store/data/beta.i tmp2
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   181
  $ hg -q rollback
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   182
  $ mv tmp2 .hg/store/data/beta.i
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   183
  $ echo blah >> beta
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   184
  $ hg ci -m '2 (corrupt)'
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   185
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   186
Expected to fail:
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   187
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   188
  $ hg verify
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   189
  checking changesets
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   190
  checking manifests
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   191
  crosschecking files in changesets and manifests
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   192
  checking files
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   193
   beta@1: dddc47b3ba30 not in manifests
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   194
  2 files, 2 changesets, 4 total revisions
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   195
  1 integrity errors encountered!
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   196
  (first damaged changeset appears to be 1)
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   197
  [1]
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   198
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   199
  $ hg push
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   200
  pushing to $TESTTMP/test-validation (glob)
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   201
  searching for changes
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   202
  adding changesets
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   203
  adding manifests
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   204
  adding file changes
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   205
  transaction abort!
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   206
  rollback completed
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   207
  abort: received spurious file revlog entry
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   208
  [255]
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   209
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   210
  $ hg -q rollback
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   211
  $ mv tmp1 .hg/store/data/beta.i
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   212
  $ echo beta > beta
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   213
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   214
Test missing filelog entries:
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   215
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   216
  $ cp .hg/store/data/beta.i tmp
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   217
  $ echo blah >> beta
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   218
  $ hg ci -m '2 (corrupt)'
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   219
  $ mv tmp .hg/store/data/beta.i
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   220
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   221
Expected to fail:
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   222
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   223
  $ hg verify
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   224
  checking changesets
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   225
  checking manifests
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   226
  crosschecking files in changesets and manifests
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   227
  checking files
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   228
   beta@1: manifest refers to unknown revision dddc47b3ba30
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   229
  2 files, 2 changesets, 2 total revisions
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   230
  1 integrity errors encountered!
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   231
  (first damaged changeset appears to be 1)
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   232
  [1]
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   233
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   234
  $ hg push
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   235
  pushing to $TESTTMP/test-validation (glob)
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   236
  searching for changes
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   237
  adding changesets
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   238
  adding manifests
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   239
  adding file changes
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   240
  transaction abort!
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   241
  rollback completed
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   242
  abort: missing file data for beta:dddc47b3ba30e54484720ce0f4f768a0f4b6efb9 - run hg verify
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   243
  [255]
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   244
0269ab4f4371 tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30293
diff changeset
   245
  $ cd ..
30295
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   246
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   247
Test push hook locking
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   248
=====================
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   249
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   250
  $ hg init 1
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   251
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   252
  $ echo '[ui]' >> 1/.hg/hgrc
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   253
  $ echo 'timeout = 10' >> 1/.hg/hgrc
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   254
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   255
  $ echo foo > 1/foo
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   256
  $ hg --cwd 1 ci -A -m foo
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   257
  adding foo
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   258
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   259
  $ hg clone 1 2
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   260
  updating to branch default
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   261
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   262
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   263
  $ hg clone 2 3
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   264
  updating to branch default
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   265
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   266
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   267
  $ cat <<EOF > $TESTTMP/debuglocks-pretxn-hook.sh
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   268
  > hg debuglocks
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   269
  > true
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   270
  > EOF
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   271
  $ echo '[hooks]' >> 2/.hg/hgrc
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   272
  $ echo "pretxnchangegroup.a = sh $TESTTMP/debuglocks-pretxn-hook.sh" >> 2/.hg/hgrc
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   273
  $ echo 'changegroup.push = hg push -qf ../1' >> 2/.hg/hgrc
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   274
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   275
  $ echo bar >> 3/foo
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   276
  $ hg --cwd 3 ci -m bar
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   277
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   278
  $ hg --cwd 3 push ../2 --config devel.legacy.exchange=bundle1
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   279
  pushing to ../2
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   280
  searching for changes
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   281
  adding changesets
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   282
  adding manifests
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   283
  adding file changes
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   284
  added 1 changesets with 1 changes to 1 files
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   285
  lock:  user *, process * (*s) (glob)
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   286
  wlock: free
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   287
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   288
  $ hg --cwd 1 --config extensions.strip= strip tip -q
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   289
  $ hg --cwd 2 --config extensions.strip= strip tip -q
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   290
  $ hg --cwd 3 push ../2 # bundle2+
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   291
  pushing to ../2
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   292
  searching for changes
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   293
  adding changesets
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   294
  adding manifests
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   295
  adding file changes
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   296
  added 1 changesets with 1 changes to 1 files
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   297
  lock:  user *, process * (*s) (glob)
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   298
  wlock: user *, process * (*s) (glob)
e58acb4fc510 tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30294
diff changeset
   299