Mercurial > hg
annotate tests/test-close-head.t @ 44667:b561f3a68e41 stable
discovery: avoid wrongly saying there are nothing to pull
We can get in a situation where a revision passed through `hg pull --rev REV`
are available on the server, but not a descendant of the advertised server
heads.
For example the server could lying be during heads advertisement, to hide some
pull request. Or obsolete/hidden content could be explicitly pulled.
So in this case the lookup associated to `REV` returned successfully, but the
normal discovery will find all advertised heads already known locally. This flip
a special boolean `anyinc` that will prevent any fetch attempt, preventing `REV`
to be pulled over.
We add three line of code to detect this case and make sure a pull actually
happens.
My main target is to make some third party extensions happy (I expect the
associated test to move upstream with the extension). However this fix already
make some of the `infinitepush` test happier.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 06 Apr 2020 00:24:57 +0200 |
parents | fdd4d668ceb5 |
children |
rev | line source |
---|---|
39993
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
1 $ hg init test-content |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
2 $ cd test-content |
40096
12a72729678e
closehead: fix close-head -r listification
Joerg Sonnenberger <joerg@bec.de>
parents:
39993
diff
changeset
|
3 $ hg debugbuilddag '+2*2*3*4+7' |
39993
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
4 $ hg bookmark -r 1 @ |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
5 $ hg log -G --template '{rev}:{node|short}' |
40096
12a72729678e
closehead: fix close-head -r listification
Joerg Sonnenberger <joerg@bec.de>
parents:
39993
diff
changeset
|
6 o 11:1d876b1f862c |
12a72729678e
closehead: fix close-head -r listification
Joerg Sonnenberger <joerg@bec.de>
parents:
39993
diff
changeset
|
7 | |
12a72729678e
closehead: fix close-head -r listification
Joerg Sonnenberger <joerg@bec.de>
parents:
39993
diff
changeset
|
8 o 10:ea5f71948eb8 |
12a72729678e
closehead: fix close-head -r listification
Joerg Sonnenberger <joerg@bec.de>
parents:
39993
diff
changeset
|
9 | |
12a72729678e
closehead: fix close-head -r listification
Joerg Sonnenberger <joerg@bec.de>
parents:
39993
diff
changeset
|
10 o 9:f1b0356d867a |
12a72729678e
closehead: fix close-head -r listification
Joerg Sonnenberger <joerg@bec.de>
parents:
39993
diff
changeset
|
11 | |
12a72729678e
closehead: fix close-head -r listification
Joerg Sonnenberger <joerg@bec.de>
parents:
39993
diff
changeset
|
12 o 8:e8d1253fb0d7 |
12a72729678e
closehead: fix close-head -r listification
Joerg Sonnenberger <joerg@bec.de>
parents:
39993
diff
changeset
|
13 | |
12a72729678e
closehead: fix close-head -r listification
Joerg Sonnenberger <joerg@bec.de>
parents:
39993
diff
changeset
|
14 o 7:d423bbba4459 |
12a72729678e
closehead: fix close-head -r listification
Joerg Sonnenberger <joerg@bec.de>
parents:
39993
diff
changeset
|
15 | |
12a72729678e
closehead: fix close-head -r listification
Joerg Sonnenberger <joerg@bec.de>
parents:
39993
diff
changeset
|
16 o 6:a2f58e9c1e56 |
12a72729678e
closehead: fix close-head -r listification
Joerg Sonnenberger <joerg@bec.de>
parents:
39993
diff
changeset
|
17 | |
12a72729678e
closehead: fix close-head -r listification
Joerg Sonnenberger <joerg@bec.de>
parents:
39993
diff
changeset
|
18 o 5:3a367db1fabc |
12a72729678e
closehead: fix close-head -r listification
Joerg Sonnenberger <joerg@bec.de>
parents:
39993
diff
changeset
|
19 | |
39993
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
20 o 4:e7bd5218ca15 |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
21 | |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
22 | o 3:6100d3090acf |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
23 |/ |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
24 | o 2:fa942426a6fd |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
25 |/ |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
26 | o 1:66f7d451a68b |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
27 |/ |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
28 o 0:1ea73414a91b |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
29 |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
30 $ hg --config extensions.closehead= close-head -m 'Not a head' 0 1 |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
31 abort: revision is not an open head: 0 |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
32 [255] |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
33 $ hg --config extensions.closehead= close-head -m 'Not a head' -r 0 1 |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
34 abort: revision is not an open head: 0 |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
35 [255] |
42294
c51b103220c7
tests: demonstrate that close-head command updates working copy
Martin von Zweigbergk <martinvonz@google.com>
parents:
40096
diff
changeset
|
36 $ hg id |
c51b103220c7
tests: demonstrate that close-head command updates working copy
Martin von Zweigbergk <martinvonz@google.com>
parents:
40096
diff
changeset
|
37 000000000000 |
39993
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
38 $ hg --config extensions.closehead= close-head -m 'Close old heads' -r 1 2 |
42294
c51b103220c7
tests: demonstrate that close-head command updates working copy
Martin von Zweigbergk <martinvonz@google.com>
parents:
40096
diff
changeset
|
39 $ hg id |
42295
fdd4d668ceb5
context: move contents of committablectx.markcommitted() to workingctx
Martin von Zweigbergk <martinvonz@google.com>
parents:
42294
diff
changeset
|
40 000000000000 |
39993
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
41 $ hg bookmark |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
42 @ 1:66f7d451a68b |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
43 $ hg heads |
40096
12a72729678e
closehead: fix close-head -r listification
Joerg Sonnenberger <joerg@bec.de>
parents:
39993
diff
changeset
|
44 changeset: 11:1d876b1f862c |
39993
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
45 user: debugbuilddag |
40096
12a72729678e
closehead: fix close-head -r listification
Joerg Sonnenberger <joerg@bec.de>
parents:
39993
diff
changeset
|
46 date: Thu Jan 01 00:00:11 1970 +0000 |
12a72729678e
closehead: fix close-head -r listification
Joerg Sonnenberger <joerg@bec.de>
parents:
39993
diff
changeset
|
47 summary: r11 |
39993
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
48 |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
49 changeset: 3:6100d3090acf |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
50 parent: 0:1ea73414a91b |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
51 user: debugbuilddag |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
52 date: Thu Jan 01 00:00:03 1970 +0000 |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
53 summary: r3 |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
54 |
40096
12a72729678e
closehead: fix close-head -r listification
Joerg Sonnenberger <joerg@bec.de>
parents:
39993
diff
changeset
|
55 $ hg --config extensions.closehead= close-head -m 'Close more old heads' -r 11 |
39993
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
56 $ hg heads |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
57 changeset: 3:6100d3090acf |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
58 parent: 0:1ea73414a91b |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
59 user: debugbuilddag |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
60 date: Thu Jan 01 00:00:03 1970 +0000 |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
61 summary: r3 |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
62 |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
63 $ hg --config extensions.closehead= close-head -m 'Not a head' 0 |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
64 abort: revision is not an open head: 0 |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
65 [255] |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
66 $ hg --config extensions.closehead= close-head -m 'Already closed head' 1 |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
67 abort: revision is not an open head: 1 |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
68 [255] |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
69 |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
70 $ hg init ../test-empty |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
71 $ cd ../test-empty |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
72 $ hg debugbuilddag '+1' |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
73 $ hg log -G --template '{rev}:{node|short}' |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
74 o 0:1ea73414a91b |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
75 |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
76 $ hg --config extensions.closehead= close-head -m 'Close initial revision' 0 |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
77 $ hg heads |
cd5f2e615262
extensions: new closehead module for closing arbitrary heads
Joerg Sonnenberger <joerg@bec.de>
parents:
diff
changeset
|
78 [1] |