Mercurial > hg
annotate tests/test-push.t @ 51681:522b4d729e89
mmap: populate the mapping by default
Without pre-population, accessing all data through a mmap can result in many
pagefault, reducing performance significantly. If the mmap is prepopulated, the
performance can no longer get slower than a full read.
(See benchmark number below)
In some cases were very few data is read, prepopulating can be overkill and
slower than populating on access (through page fault). So that behavior can be
controlled when the caller can pre-determine the best behavior.
(See benchmark number below)
In addition, testing with populating in a secondary thread yield great result
combining the best of each approach. This might be implemented in later
changesets.
In all cases, using mmap has a great effect on memory usage when many processes
run in parallel on the same machine.
### Benchmarks
# What did I run
A couple of month back I ran a large benchmark campaign to assess the impact of
various approach for using mmap with the revlog (and other files), it
highlighted a few benchmarks that capture the impact of the changes well. So to
validate this change I checked the following:
- log command displaying various revisions
(read the changelog index)
- log command displaying the patch of listed revisions
(read the changelog index, the manifest index and a few files indexes)
- unbundling a few revisions
(read and write changelog, manifest and few files indexes, and walk the graph
to update some cache)
- pushing a few revisions
(read and write changelog, manifest and few files indexes, walk the graph to
update some cache, performs various accesses locally and remotely during
discovery)
Benchmarks were run using the default module policy (c+py) and the rust one. No
significant difference were found between the two implementation, so we will
present result using the default policy (unless otherwise specified).
I ran them on a few repositories :
- mercurial: a "public changeset only" copy of mercurial from 2018-08-01 using
zstd compression and sparse-revlog
- pypy: a copy of pypy from 2018-08-01 using zstd compression and sparse-revlog
- netbeans: a copy of netbeans from 2018-08-01 using zstd compression and
sparse-revlog
- mozilla-try: a copy of mozilla-try from 2019-02-18 using zstd compression and
sparse-revlog
- mozilla-try persistent-nodemap: Same as the above but with a persistent
nodemap. Used for the log --patch benchmark only
# Results
For the smaller repositories (mercurial, pypy), the impact of mmap is almost
imperceptible, other cost dominating the operation. The impact of prepopulating
is undiscernible in the benchmark we ran.
For larger repositories the benchmark support explanation given above:
On netbeans, the log can be about 1% faster without repopulation (for a
difference < 100ms) but unbundle becomes a bit slower, even when small.
### data-env-vars.name = netbeans-2018-08-01-zstd-sparse-revlog
# benchmark.name = hg.command.unbundle
# benchmark.variants.issue6528 = disabled
# benchmark.variants.reuse-external-delta-parent = yes
# benchmark.variants.revs = any-1-extra-rev
# benchmark.variants.source = unbundle
# benchmark.variants.verbosity = quiet
with-populate: 0.240157
no-populate: 0.265087 (+10.38%, +0.02)
# benchmark.variants.revs = any-100-extra-rev
with-populate: 1.459518
no-populate: 1.481290 (+1.49%, +0.02)
## benchmark.name = hg.command.push
# benchmark.variants.explicit-rev = none
# benchmark.variants.issue6528 = disabled
# benchmark.variants.protocol = ssh
# benchmark.variants.reuse-external-delta-parent = yes
# benchmark.variants.revs = any-1-extra-rev
with-populate: 0.771919
no-populate: 0.792025 (+2.60%, +0.02)
# benchmark.variants.revs = any-100-extra-rev
with-populate: 1.459518
no-populate: 1.481290 (+1.49%, +0.02)
For mozilla-try, the "slow down" from pre-populate for small `hg log` is more
visible, but still small in absolute time. (using rust value for the persistent
nodemap value to be relevant).
### data-env-vars.name = mozilla-try-2019-02-18-ds2-pnm
# benchmark.name = hg.command.log
# bin-env-vars.hg.flavor = rust
# benchmark.variants.patch = yes
# benchmark.variants.limit-rev = 1
with-populate: 0.237813
no-populate: 0.229452 (-3.52%, -0.01)
# benchmark.variants.limit-rev = 10
# benchmark.variants.patch = yes
with-populate: 1.213578
no-populate: 1.205189
### data-env-vars.name = mozilla-try-2019-02-18-zstd-sparse-revlog
# benchmark.variants.limit-rev = 1000
# benchmark.variants.patch = no
# benchmark.variants.rev = tip
with-populate: 0.198607
no-populate: 0.195038 (-1.80%, -0.00)
However pre-populating provide a significant boost on more complex operations
like unbundle or push:
### data-env-vars.name = mozilla-try-2019-02-18-zstd-sparse-revlog
# benchmark.name = hg.command.push
# benchmark.variants.explicit-rev = none
# benchmark.variants.issue6528 = disabled
# benchmark.variants.protocol = ssh
# benchmark.variants.reuse-external-delta-parent = yes
# benchmark.variants.revs = any-1-extra-rev
with-populate: 4.798632
no-populate: 4.953295 (+3.22%, +0.15)
# benchmark.variants.revs = any-100-extra-rev
with-populate: 4.903618
no-populate: 5.014963 (+2.27%, +0.11)
## benchmark.name = hg.command.unbundle
# benchmark.variants.revs = any-1-extra-rev
with-populate: 1.423411
no-populate: 1.585365 (+11.38%, +0.16)
# benchmark.variants.revs = any-100-extra-rev
with-populate: 1.537909
no-populate: 1.688489 (+9.79%, +0.15)
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Thu, 11 Apr 2024 00:02:07 +0200 |
parents | c84844cd523a |
children |
rev | line source |
---|---|
30279
a8d2071c3373
test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30278
diff
changeset
|
1 ================================== |
a8d2071c3373
test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30278
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:
30278
diff
changeset
|
3 ================================== |
a8d2071c3373
test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30278
diff
changeset
|
4 |
a8d2071c3373
test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30278
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:
30278
diff
changeset
|
6 =========================== |
a8d2071c3373
test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30278
diff
changeset
|
7 |
a8d2071c3373
test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30278
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:
30278
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) |
39480
89630d0b3e23
phase: report number of non-public changeset alongside the new range
Boris Feld <boris.feld@octobus.net>
parents:
37344
diff
changeset
|
14 new changesets bfaf4b5cbf01:916f1afdef90 (9 drafts) |
14117
07708f4171f1
tests: create a bundle to bootstrap tests using a remote repository
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
12279
diff
changeset
|
15 (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
|
16 |
12279 | 17 $ for i in 0 1 2 3 4 5 6 7 8; do |
18 > echo | |
30279
a8d2071c3373
test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30278
diff
changeset
|
19 > 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:
30278
diff
changeset
|
20 > hg -R test-revflag push -r "$i" test-revflag-"$i" |
49825
2f2682f40ea0
tests: use the `--quiet` flag for verify when applicable
Raphaël Gomès <rgomes@octobus.net>
parents:
46119
diff
changeset
|
21 > hg -R test-revflag-"$i" verify -q |
12279 | 22 > done |
23 | |
30279
a8d2071c3373
test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30278
diff
changeset
|
24 pushing to test-revflag-0 |
12279 | 25 searching for changes |
26 adding changesets | |
27 adding manifests | |
28 adding file changes | |
29 added 1 changesets with 1 changes to 1 files | |
30 | |
30279
a8d2071c3373
test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30278
diff
changeset
|
31 pushing to test-revflag-1 |
12279 | 32 searching for changes |
33 adding changesets | |
34 adding manifests | |
35 adding file changes | |
36 added 2 changesets with 2 changes to 1 files | |
37 | |
30279
a8d2071c3373
test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30278
diff
changeset
|
38 pushing to test-revflag-2 |
12279 | 39 searching for changes |
40 adding changesets | |
41 adding manifests | |
42 adding file changes | |
43 added 3 changesets with 3 changes to 1 files | |
44 | |
30279
a8d2071c3373
test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30278
diff
changeset
|
45 pushing to test-revflag-3 |
12279 | 46 searching for changes |
47 adding changesets | |
48 adding manifests | |
49 adding file changes | |
50 added 4 changesets with 4 changes to 1 files | |
51 | |
30279
a8d2071c3373
test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30278
diff
changeset
|
52 pushing to test-revflag-4 |
12279 | 53 searching for changes |
54 adding changesets | |
55 adding manifests | |
56 adding file changes | |
57 added 2 changesets with 2 changes to 1 files | |
58 | |
30279
a8d2071c3373
test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30278
diff
changeset
|
59 pushing to test-revflag-5 |
12279 | 60 searching for changes |
61 adding changesets | |
62 adding manifests | |
63 adding file changes | |
64 added 3 changesets with 3 changes to 1 files | |
65 | |
30279
a8d2071c3373
test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30278
diff
changeset
|
66 pushing to test-revflag-6 |
12279 | 67 searching for changes |
68 adding changesets | |
69 adding manifests | |
70 adding file changes | |
71 added 4 changesets with 5 changes to 2 files | |
72 | |
30279
a8d2071c3373
test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30278
diff
changeset
|
73 pushing to test-revflag-7 |
12279 | 74 searching for changes |
75 adding changesets | |
76 adding manifests | |
77 adding file changes | |
78 added 5 changesets with 6 changes to 3 files | |
79 | |
30279
a8d2071c3373
test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30278
diff
changeset
|
80 pushing to test-revflag-8 |
12279 | 81 searching for changes |
82 adding changesets | |
83 adding manifests | |
84 adding file changes | |
85 added 5 changesets with 5 changes to 2 files | |
86 | |
30279
a8d2071c3373
test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30278
diff
changeset
|
87 $ cd test-revflag-8 |
12279 | 88 |
30279
a8d2071c3373
test: rename 'test-push-r.t' to 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30278
diff
changeset
|
89 $ 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:
30278
diff
changeset
|
90 pulling from ../test-revflag-7 |
12279 | 91 searching for changes |
92 adding changesets | |
93 adding manifests | |
94 adding file changes | |
95 added 4 changesets with 2 changes to 3 files (+1 heads) | |
34661
eb586ed5d8ce
transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
33660
diff
changeset
|
96 new changesets c70afb1ee985:faa2e4234c7a |
12279 | 97 (run 'hg heads' to see heads, 'hg merge' to merge) |
98 | |
49825
2f2682f40ea0
tests: use the `--quiet` flag for verify when applicable
Raphaël Gomès <rgomes@octobus.net>
parents:
46119
diff
changeset
|
99 $ hg verify -q |
12279 | 100 |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16350
diff
changeset
|
101 $ cd .. |
30280
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
102 |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
103 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:
30279
diff
changeset
|
104 ======================================= |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
105 |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
106 $ 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:
30279
diff
changeset
|
107 $ cd test-validation |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
108 |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
109 $ 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:
30279
diff
changeset
|
110 > [server] |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
111 > validate=1 |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
112 > EOF |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
113 |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
114 $ echo alpha > alpha |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
115 $ echo beta > beta |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
116 $ hg addr |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
117 adding alpha |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
118 adding beta |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
119 $ 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:
30279
diff
changeset
|
120 |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
121 $ cd .. |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
122 $ 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:
30279
diff
changeset
|
123 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:
30279
diff
changeset
|
124 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:
30279
diff
changeset
|
125 |
37344
e1942c196f66
tests: skip filelog damage tests when not using revlogs
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35393
diff
changeset
|
126 #if reporevlogstore |
e1942c196f66
tests: skip filelog damage tests when not using revlogs
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35393
diff
changeset
|
127 |
30280
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
128 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:
30279
diff
changeset
|
129 |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
130 $ 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:
30279
diff
changeset
|
131 $ echo blah >> beta |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
132 $ 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:
30279
diff
changeset
|
133 $ 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:
30279
diff
changeset
|
134 $ 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:
30279
diff
changeset
|
135 $ hg -q rollback |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
136 $ 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:
30279
diff
changeset
|
137 $ echo blah >> beta |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
138 $ 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:
30279
diff
changeset
|
139 |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
140 Expected to fail: |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
141 |
49825
2f2682f40ea0
tests: use the `--quiet` flag for verify when applicable
Raphaël Gomès <rgomes@octobus.net>
parents:
46119
diff
changeset
|
142 $ hg verify -q |
30280
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
143 beta@1: dddc47b3ba30 not in manifests |
49826
c84844cd523a
verify: also check dirstate
Raphaël Gomès <rgomes@octobus.net>
parents:
49825
diff
changeset
|
144 not checking dirstate because of previous errors |
30280
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
145 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:
30279
diff
changeset
|
146 (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:
30279
diff
changeset
|
147 [1] |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
148 |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
149 $ hg push |
35393
4441705b7111
tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents:
34661
diff
changeset
|
150 pushing to $TESTTMP/test-validation |
30280
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
151 searching for changes |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
152 adding changesets |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
153 adding manifests |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
154 adding file changes |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
155 transaction abort! |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
156 rollback completed |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
157 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:
30279
diff
changeset
|
158 [255] |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
159 |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
160 $ hg -q rollback |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
161 $ 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:
30279
diff
changeset
|
162 $ echo beta > beta |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
163 |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
164 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:
30279
diff
changeset
|
165 |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
166 $ 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:
30279
diff
changeset
|
167 $ echo blah >> beta |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
168 $ 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:
30279
diff
changeset
|
169 $ 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:
30279
diff
changeset
|
170 |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
171 Expected to fail: |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
172 |
49825
2f2682f40ea0
tests: use the `--quiet` flag for verify when applicable
Raphaël Gomès <rgomes@octobus.net>
parents:
46119
diff
changeset
|
173 $ hg verify -q |
30280
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
174 beta@1: manifest refers to unknown revision dddc47b3ba30 |
49826
c84844cd523a
verify: also check dirstate
Raphaël Gomès <rgomes@octobus.net>
parents:
49825
diff
changeset
|
175 not checking dirstate because of previous errors |
30280
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
176 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:
30279
diff
changeset
|
177 (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:
30279
diff
changeset
|
178 [1] |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
179 |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
180 $ hg push |
35393
4441705b7111
tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents:
34661
diff
changeset
|
181 pushing to $TESTTMP/test-validation |
30280
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
182 searching for changes |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
183 adding changesets |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
184 adding manifests |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
185 adding file changes |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
186 transaction abort! |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
187 rollback completed |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
188 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:
30279
diff
changeset
|
189 [255] |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
190 |
0269ab4f4371
tests: merge 'test-push-validation.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30279
diff
changeset
|
191 $ cd .. |
30281
e58acb4fc510
tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30280
diff
changeset
|
192 |
37344
e1942c196f66
tests: skip filelog damage tests when not using revlogs
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35393
diff
changeset
|
193 #endif |
e1942c196f66
tests: skip filelog damage tests when not using revlogs
Gregory Szorc <gregory.szorc@gmail.com>
parents:
35393
diff
changeset
|
194 |
30281
e58acb4fc510
tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30280
diff
changeset
|
195 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:
30280
diff
changeset
|
196 ===================== |
e58acb4fc510
tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30280
diff
changeset
|
197 |
e58acb4fc510
tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30280
diff
changeset
|
198 $ 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:
30280
diff
changeset
|
199 |
e58acb4fc510
tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30280
diff
changeset
|
200 $ 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:
30280
diff
changeset
|
201 $ 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:
30280
diff
changeset
|
202 |
e58acb4fc510
tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30280
diff
changeset
|
203 $ 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:
30280
diff
changeset
|
204 $ 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:
30280
diff
changeset
|
205 adding foo |
e58acb4fc510
tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30280
diff
changeset
|
206 |
e58acb4fc510
tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30280
diff
changeset
|
207 $ 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:
30280
diff
changeset
|
208 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:
30280
diff
changeset
|
209 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:
30280
diff
changeset
|
210 |
e58acb4fc510
tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30280
diff
changeset
|
211 $ 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:
30280
diff
changeset
|
212 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:
30280
diff
changeset
|
213 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:
30280
diff
changeset
|
214 |
e58acb4fc510
tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30280
diff
changeset
|
215 $ 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:
30280
diff
changeset
|
216 > hg debuglocks |
e58acb4fc510
tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30280
diff
changeset
|
217 > true |
e58acb4fc510
tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30280
diff
changeset
|
218 > EOF |
e58acb4fc510
tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30280
diff
changeset
|
219 $ 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:
30280
diff
changeset
|
220 $ 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:
30280
diff
changeset
|
221 $ 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:
30280
diff
changeset
|
222 |
e58acb4fc510
tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30280
diff
changeset
|
223 $ 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:
30280
diff
changeset
|
224 $ 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:
30280
diff
changeset
|
225 |
e58acb4fc510
tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30280
diff
changeset
|
226 $ 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:
30280
diff
changeset
|
227 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:
30280
diff
changeset
|
228 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:
30280
diff
changeset
|
229 adding changesets |
e58acb4fc510
tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30280
diff
changeset
|
230 adding manifests |
e58acb4fc510
tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30280
diff
changeset
|
231 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:
30280
diff
changeset
|
232 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:
30280
diff
changeset
|
233 wlock: free |
42897
d7304434390f
changegroup: move message about added changes to transaction summary
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39489
diff
changeset
|
234 added 1 changesets with 1 changes to 1 files |
30281
e58acb4fc510
tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30280
diff
changeset
|
235 |
e58acb4fc510
tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30280
diff
changeset
|
236 $ 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:
30280
diff
changeset
|
237 $ 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:
30280
diff
changeset
|
238 $ 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:
30280
diff
changeset
|
239 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:
30280
diff
changeset
|
240 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:
30280
diff
changeset
|
241 adding changesets |
e58acb4fc510
tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30280
diff
changeset
|
242 adding manifests |
e58acb4fc510
tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30280
diff
changeset
|
243 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:
30280
diff
changeset
|
244 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:
30280
diff
changeset
|
245 wlock: user *, process * (*s) (glob) |
42897
d7304434390f
changegroup: move message about added changes to transaction summary
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39489
diff
changeset
|
246 added 1 changesets with 1 changes to 1 files |
30281
e58acb4fc510
tests: merge 'test-push-hook-lock.t' into 'test-push.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
30280
diff
changeset
|
247 |
33138
78fc540c53e1
pushrace: avoid crash on bare push when using concurrent push mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
30281
diff
changeset
|
248 Test bare push with multiple race checking options |
78fc540c53e1
pushrace: avoid crash on bare push when using concurrent push mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
30281
diff
changeset
|
249 -------------------------------------------------- |
78fc540c53e1
pushrace: avoid crash on bare push when using concurrent push mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
30281
diff
changeset
|
250 |
78fc540c53e1
pushrace: avoid crash on bare push when using concurrent push mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
30281
diff
changeset
|
251 $ hg init test-bare-push-no-concurrency |
78fc540c53e1
pushrace: avoid crash on bare push when using concurrent push mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
30281
diff
changeset
|
252 $ hg init test-bare-push-unrelated-concurrency |
78fc540c53e1
pushrace: avoid crash on bare push when using concurrent push mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
30281
diff
changeset
|
253 $ hg -R test-revflag push -r 0 test-bare-push-no-concurrency --config server.concurrent-push-mode=strict |
78fc540c53e1
pushrace: avoid crash on bare push when using concurrent push mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
30281
diff
changeset
|
254 pushing to test-bare-push-no-concurrency |
78fc540c53e1
pushrace: avoid crash on bare push when using concurrent push mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
30281
diff
changeset
|
255 searching for changes |
78fc540c53e1
pushrace: avoid crash on bare push when using concurrent push mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
30281
diff
changeset
|
256 adding changesets |
78fc540c53e1
pushrace: avoid crash on bare push when using concurrent push mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
30281
diff
changeset
|
257 adding manifests |
78fc540c53e1
pushrace: avoid crash on bare push when using concurrent push mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
30281
diff
changeset
|
258 adding file changes |
78fc540c53e1
pushrace: avoid crash on bare push when using concurrent push mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
30281
diff
changeset
|
259 added 1 changesets with 1 changes to 1 files |
78fc540c53e1
pushrace: avoid crash on bare push when using concurrent push mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
30281
diff
changeset
|
260 $ hg -R test-revflag push -r 0 test-bare-push-unrelated-concurrency --config server.concurrent-push-mode=check-related |
78fc540c53e1
pushrace: avoid crash on bare push when using concurrent push mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
30281
diff
changeset
|
261 pushing to test-bare-push-unrelated-concurrency |
78fc540c53e1
pushrace: avoid crash on bare push when using concurrent push mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
30281
diff
changeset
|
262 searching for changes |
78fc540c53e1
pushrace: avoid crash on bare push when using concurrent push mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
30281
diff
changeset
|
263 adding changesets |
78fc540c53e1
pushrace: avoid crash on bare push when using concurrent push mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
30281
diff
changeset
|
264 adding manifests |
78fc540c53e1
pushrace: avoid crash on bare push when using concurrent push mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
30281
diff
changeset
|
265 adding file changes |
78fc540c53e1
pushrace: avoid crash on bare push when using concurrent push mode
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
30281
diff
changeset
|
266 added 1 changesets with 1 changes to 1 files |
33655
48d520fdf880
push: add tests for unsafe ssh url (SEC)
Sean Farley <sean@farley.io>
parents:
33138
diff
changeset
|
267 |
48d520fdf880
push: add tests for unsafe ssh url (SEC)
Sean Farley <sean@farley.io>
parents:
33138
diff
changeset
|
268 SEC: check for unsafe ssh url |
48d520fdf880
push: add tests for unsafe ssh url (SEC)
Sean Farley <sean@farley.io>
parents:
33138
diff
changeset
|
269 |
33660
3fee7f7d2da0
ssh: unban the use of pipe character in user@host:port string
Yuya Nishihara <yuya@tcha.org>
parents:
33655
diff
changeset
|
270 $ cat >> $HGRCPATH << EOF |
3fee7f7d2da0
ssh: unban the use of pipe character in user@host:port string
Yuya Nishihara <yuya@tcha.org>
parents:
33655
diff
changeset
|
271 > [ui] |
3fee7f7d2da0
ssh: unban the use of pipe character in user@host:port string
Yuya Nishihara <yuya@tcha.org>
parents:
33655
diff
changeset
|
272 > ssh = sh -c "read l; read l; read l" |
3fee7f7d2da0
ssh: unban the use of pipe character in user@host:port string
Yuya Nishihara <yuya@tcha.org>
parents:
33655
diff
changeset
|
273 > EOF |
3fee7f7d2da0
ssh: unban the use of pipe character in user@host:port string
Yuya Nishihara <yuya@tcha.org>
parents:
33655
diff
changeset
|
274 |
33655
48d520fdf880
push: add tests for unsafe ssh url (SEC)
Sean Farley <sean@farley.io>
parents:
33138
diff
changeset
|
275 $ hg -R test-revflag push 'ssh://-oProxyCommand=touch${IFS}owned/path' |
48d520fdf880
push: add tests for unsafe ssh url (SEC)
Sean Farley <sean@farley.io>
parents:
33138
diff
changeset
|
276 pushing to ssh://-oProxyCommand%3Dtouch%24%7BIFS%7Downed/path |
48d520fdf880
push: add tests for unsafe ssh url (SEC)
Sean Farley <sean@farley.io>
parents:
33138
diff
changeset
|
277 abort: potentially unsafe url: 'ssh://-oProxyCommand=touch${IFS}owned/path' |
48d520fdf880
push: add tests for unsafe ssh url (SEC)
Sean Farley <sean@farley.io>
parents:
33138
diff
changeset
|
278 [255] |
48d520fdf880
push: add tests for unsafe ssh url (SEC)
Sean Farley <sean@farley.io>
parents:
33138
diff
changeset
|
279 $ hg -R test-revflag push 'ssh://%2DoProxyCommand=touch${IFS}owned/path' |
48d520fdf880
push: add tests for unsafe ssh url (SEC)
Sean Farley <sean@farley.io>
parents:
33138
diff
changeset
|
280 pushing to ssh://-oProxyCommand%3Dtouch%24%7BIFS%7Downed/path |
48d520fdf880
push: add tests for unsafe ssh url (SEC)
Sean Farley <sean@farley.io>
parents:
33138
diff
changeset
|
281 abort: potentially unsafe url: 'ssh://-oProxyCommand=touch${IFS}owned/path' |
48d520fdf880
push: add tests for unsafe ssh url (SEC)
Sean Farley <sean@farley.io>
parents:
33138
diff
changeset
|
282 [255] |
33660
3fee7f7d2da0
ssh: unban the use of pipe character in user@host:port string
Yuya Nishihara <yuya@tcha.org>
parents:
33655
diff
changeset
|
283 $ hg -R test-revflag push 'ssh://fakehost|touch${IFS}owned/path' |
3fee7f7d2da0
ssh: unban the use of pipe character in user@host:port string
Yuya Nishihara <yuya@tcha.org>
parents:
33655
diff
changeset
|
284 pushing to ssh://fakehost%7Ctouch%24%7BIFS%7Downed/path |
45906
95c4cca641f6
errors: remove trailing "!" from some error messages for consistency
Martin von Zweigbergk <martinvonz@google.com>
parents:
45827
diff
changeset
|
285 abort: no suitable response from remote hg |
33655
48d520fdf880
push: add tests for unsafe ssh url (SEC)
Sean Farley <sean@farley.io>
parents:
33138
diff
changeset
|
286 [255] |
33660
3fee7f7d2da0
ssh: unban the use of pipe character in user@host:port string
Yuya Nishihara <yuya@tcha.org>
parents:
33655
diff
changeset
|
287 $ hg -R test-revflag push 'ssh://fakehost%7Ctouch%20owned/path' |
3fee7f7d2da0
ssh: unban the use of pipe character in user@host:port string
Yuya Nishihara <yuya@tcha.org>
parents:
33655
diff
changeset
|
288 pushing to ssh://fakehost%7Ctouch%20owned/path |
45906
95c4cca641f6
errors: remove trailing "!" from some error messages for consistency
Martin von Zweigbergk <martinvonz@google.com>
parents:
45827
diff
changeset
|
289 abort: no suitable response from remote hg |
33655
48d520fdf880
push: add tests for unsafe ssh url (SEC)
Sean Farley <sean@farley.io>
parents:
33138
diff
changeset
|
290 [255] |
33660
3fee7f7d2da0
ssh: unban the use of pipe character in user@host:port string
Yuya Nishihara <yuya@tcha.org>
parents:
33655
diff
changeset
|
291 |
3fee7f7d2da0
ssh: unban the use of pipe character in user@host:port string
Yuya Nishihara <yuya@tcha.org>
parents:
33655
diff
changeset
|
292 $ [ ! -f owned ] || echo 'you got owned' |
43163
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
293 |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
294 Test `commands.push.require-revs` |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
295 --------------------------------- |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
296 |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
297 $ hg clone -q test-revflag test-require-revs-source |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
298 $ hg init test-require-revs-dest |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
299 $ cd test-require-revs-source |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
300 $ cat >> .hg/hgrc << EOF |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
301 > [paths] |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
302 > default = ../test-require-revs-dest |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
303 > [commands] |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
304 > push.require-revs=1 |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
305 > EOF |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
306 $ hg push |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
307 pushing to $TESTTMP/test-require-revs-dest |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
308 abort: no revisions specified to push |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
309 (did you mean "hg push -r ."?) |
45827
8d72e29ad1e0
errors: introduce InputError and use it from commands and cmdutil
Martin von Zweigbergk <martinvonz@google.com>
parents:
43163
diff
changeset
|
310 [10] |
43163
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
311 $ hg push -r 0 |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
312 pushing to $TESTTMP/test-require-revs-dest |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
313 searching for changes |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
314 adding changesets |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
315 adding manifests |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
316 adding file changes |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
317 added 1 changesets with 1 changes to 1 files |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
318 $ hg bookmark -r 0 push-this-bookmark |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
319 (test that -B (bookmark) works for specifying "revs") |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
320 $ hg push -B push-this-bookmark |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
321 pushing to $TESTTMP/test-require-revs-dest |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
322 searching for changes |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
323 no changes found |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
324 exporting bookmark push-this-bookmark |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
325 [1] |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
326 (test that -b (branch) works for specifying "revs") |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
327 $ hg push -b default |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
328 pushing to $TESTTMP/test-require-revs-dest |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
329 searching for changes |
45908
122f0b59f5f0
errors: remove trailing "!" in messages about creating new heads on push
Martin von Zweigbergk <martinvonz@google.com>
parents:
45906
diff
changeset
|
330 abort: push creates new remote head [0-9a-f]+ (re) |
43163
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
331 (merge or see 'hg help push' for details about pushing new heads) |
46119
9261f6c1d39b
errors: raise StateError when push fails because it creates new heads
Martin von Zweigbergk <martinvonz@google.com>
parents:
45908
diff
changeset
|
332 [20] |
43163
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
333 (demonstrate that even though we don't have anything to exchange, we're still |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
334 showing the error) |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
335 $ hg push |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
336 pushing to $TESTTMP/test-require-revs-dest |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
337 abort: no revisions specified to push |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
338 (did you mean "hg push -r ."?) |
45827
8d72e29ad1e0
errors: introduce InputError and use it from commands and cmdutil
Martin von Zweigbergk <martinvonz@google.com>
parents:
43163
diff
changeset
|
339 [10] |
43163
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
340 $ hg push --config paths.default:pushrev=0 |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
341 pushing to $TESTTMP/test-require-revs-dest |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
342 searching for changes |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
343 no changes found |
5617b748aad8
push: support config option to require revs be specified when running push
Kyle Lippincott <spectral@google.com>
parents:
42897
diff
changeset
|
344 [1] |