Mercurial > evolve
annotate tests/test-push-checkheads-partial-C2.t @ 3253:8dcb9e929a57
stablerange: fallback to a more naive approach to find subrange
As suspected, using "bheads" was bit good enough in some case and we have to
fall back to the approach used in "basic".
On the evolve repo (about 3K changeset) this approach is about 60% slower than
the previous (wrong) code.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Sun, 10 Dec 2017 00:20:06 +0100 |
parents | 8feb2cae7eae |
children | ccfcacc5ee7c ae6fddf39933 |
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 |
3075
8feb2cae7eae
test: adapt to output change from eb586ed5d8ce
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2754
diff
changeset
|
56 new changesets d73caddc5533 |
2249
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
57 (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
|
58 $ hg up 0 |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
59 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
|
60 $ mkcommit A1 |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
61 created new head |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
62 $ 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
|
63 obsoleted 1 changesets |
2249
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
64 $ hg log -G --hidden |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
65 @ f6082bc4ffef (draft): A1 |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
66 | |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
67 | o d73caddc5533 (draft): B0 |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
68 | | |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
69 | x 8aaa48160adc (draft): A0 |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
70 |/ |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
71 o 1e4be0697311 (public): root |
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 |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
74 Actual testing |
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 |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
77 $ 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
|
78 pushing to $TESTTMP/C2/server (glob) |
2249
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
79 searching for changes |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
80 abort: push creates new remote head f6082bc4ffef! |
0ecb9fba6364
checkheads: handle partial obsolescence
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
81 (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
|
82 [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
|
83 |
61d885899466
checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2249
diff
changeset
|
84 $ cd ../.. |