Mercurial > evolve
annotate tests/test-push-checkheads-partial-C2.t @ 2928:6275808e89ef
topic: setup 'topic' value for working ctx
The way amend work in core change in e8a7c1a0565a. The intermediate commit
disappear and we can no longer rely on it to carry the topic value to amend. To
fix this, we ensure the current topic value can be retrieved through the
`workingctx.extra()` value. Since there is no way to carry a "missing" key
information in a way that survives and "dict.update" call. We also has to
introduce hacking behavior about a special empty value for topic.
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Wed, 13 Sep 2017 15:13:51 +0200 |
parents | 21f06d932231 |
children | 2280461343e5 8feb2cae7eae |
rev | line source |
---|---|
2249
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
1 ==================================== |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
2 Testing head checking code: Case C-2 |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
3 ==================================== |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
4 |
2277
61d885899466
checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2249
diff
changeset
|
5 Mercurial checks for the introduction of new heads on push. Evolution comes |
61d885899466
checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2249
diff
changeset
|
6 into play to detect if existing branches on the server are being replaced by |
61d885899466
checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2249
diff
changeset
|
7 some of the new one we push. |
2249
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
8 |
2277
61d885899466
checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2249
diff
changeset
|
9 This case is part of a series of tests checking this behavior. |
2249
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
10 |
2277
61d885899466
checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2249
diff
changeset
|
11 Category C: case were the branch is only partially obsoleted |
2249
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
12 TestCase 2: 2 changeset branch, only the base is rewritten |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
13 |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
14 .. old-state: |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
15 .. |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
16 .. * 2 changeset branch |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
17 .. |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
18 .. new-state: |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
19 .. |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
20 .. * 1 new changesets branches superceeding only the base of the old one |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
21 .. * The old branch is still alive (base is obsolete, head is alive) |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
22 .. |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
23 .. expected-result: |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
24 .. |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
25 .. * push denied |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
26 .. |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
27 .. graph-summary: |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
28 .. |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
29 .. B ○ |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
30 .. | |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
31 .. A ø⇠◔ A' |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
32 .. |/ |
2277
61d885899466
checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2249
diff
changeset
|
33 .. ● |
2249
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
34 |
2277
61d885899466
checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2249
diff
changeset
|
35 $ . $TESTDIR/testlib/push-checkheads-util.sh |
2249
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
36 |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
37 Test setup |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
38 ---------- |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
39 |
2277
61d885899466
checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2249
diff
changeset
|
40 $ mkdir C2 |
61d885899466
checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2249
diff
changeset
|
41 $ cd C2 |
2249
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
42 $ setuprepos |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
43 creating basic server and client repo |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
44 updating to branch default |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
45 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
46 $ cd server |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
47 $ mkcommit B0 |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
48 $ cd ../client |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
49 $ hg pull |
2277
61d885899466
checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2249
diff
changeset
|
50 pulling from $TESTTMP/C2/server (glob) |
2249
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
51 searching for changes |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
52 adding changesets |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
53 adding manifests |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
54 adding file changes |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
55 added 1 changesets with 1 changes to 1 files |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
56 (run 'hg update' to get a working copy) |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
57 $ hg up 0 |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
58 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
59 $ mkcommit A1 |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
60 created new head |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
61 $ hg debugobsolete `getid "desc(A0)" ` `getid "desc(A1)"` |
2754
21f06d932231
test: update test output to match b11e8c67fb0f
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2277
diff
changeset
|
62 obsoleted 1 changesets |
2249
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
63 $ hg log -G --hidden |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
64 @ f6082bc4ffef (draft): A1 |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
65 | |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
66 | o d73caddc5533 (draft): B0 |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
67 | | |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
68 | x 8aaa48160adc (draft): A0 |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
69 |/ |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
70 o 1e4be0697311 (public): root |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
71 |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
72 |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
73 Actual testing |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
74 -------------- |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
75 |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
76 $ hg push --rev 'desc(A1)' |
2277
61d885899466
checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2249
diff
changeset
|
77 pushing to $TESTTMP/C2/server (glob) |
2249
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
78 searching for changes |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
79 abort: push creates new remote head f6082bc4ffef! |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
80 (merge or see 'hg help push' for details about pushing new heads) |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
81 [255] |
2277
61d885899466
checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2249
diff
changeset
|
82 |
61d885899466
checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2249
diff
changeset
|
83 $ cd ../.. |