Mercurial > hg-stable
annotate tests/test-push-checkheads-partial-C2.t @ 51250:1b23aaf5eb7b
rust-index: optimize find_gca_candidates() on less than 8 revisions
This is expected to be by far the most common case, given that, e.g.,
merging involves using it on two revisions.
Using a `u8` as support for the bitset obviously divides the amount of
RAM needed by 8. To state the obvious, on a repository with 10 million
changesets, this spares 70MB. It is also possible that it'd be slightly
faster, because it is easier to allocate and provides better cache locality.
It is possible that some exhaustive listing of the traits implemented by
`u8` and `u64` would avoid the added duplication, but that can be done later
and would need a replacement for the `MAX` consts.
author | Georges Racinet <georges.racinet@octobus.net> |
---|---|
date | Fri, 20 Oct 2023 09:12:22 +0200 |
parents | 5996640fc6fe |
children |
rev | line source |
---|---|
31983
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
1 ==================================== |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
2 Testing head checking code: Case C-2 |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
3 ==================================== |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
4 |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
5 Mercurial checks for the introduction of new heads on push. Evolution comes |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
6 into play to detect if existing branches on the server are being replaced by |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
7 some of the new one we push. |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
8 |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
9 This case is part of a series of tests checking this behavior. |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
10 |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
11 Category C: case were the branch is only partially obsoleted |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
12 TestCase 2: 2 changeset branch, only the base is rewritten |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
13 |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
14 .. old-state: |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
15 .. |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
16 .. * 2 changeset branch |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
17 .. |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
18 .. new-state: |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
19 .. |
49203
5996640fc6fe
tests: fix misspelling of supersede
Anton Shestakov <av6@dwimlabs.net>
parents:
46120
diff
changeset
|
20 .. * 1 new changesets branches superseding only the base of the old one |
31983
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
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) |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
22 .. |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
23 .. expected-result: |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
24 .. |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
25 .. * push denied |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
26 .. |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
27 .. graph-summary: |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
28 .. |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
29 .. B ○ |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
30 .. | |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
31 .. A ø⇠◔ A' |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
32 .. |/ |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
33 .. ● |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
34 |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
35 $ . $TESTDIR/testlib/push-checkheads-util.sh |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
36 |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
37 Test setup |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
38 ---------- |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
39 |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
40 $ mkdir C2 |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
41 $ cd C2 |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
42 $ setuprepos |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
43 creating basic server and client repo |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
44 updating to branch default |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
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 |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
46 $ cd server |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
47 $ mkcommit B0 |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
48 $ cd ../client |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
49 $ hg pull |
35400
4441705b7111
tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents:
34661
diff
changeset
|
50 pulling from $TESTTMP/C2/server |
31983
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
51 searching for changes |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
52 adding changesets |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
53 adding manifests |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
54 adding file changes |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
55 added 1 changesets with 1 changes to 1 files |
39497
89630d0b3e23
phase: report number of non-public changeset alongside the new range
Boris Feld <boris.feld@octobus.net>
parents:
35709
diff
changeset
|
56 new changesets d73caddc5533 (1 drafts) |
31983
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
57 (run 'hg update' to get a working copy) |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
58 $ hg up 0 |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
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 |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
60 $ mkcommit A1 |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
61 created new head |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
62 $ hg debugobsolete `getid "desc(A0)" ` `getid "desc(A1)"` |
42899
34a46d48d24e
debugobsolete: also issue the "new obsmarkers" messsage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39497
diff
changeset
|
63 1 new obsolescence markers |
33542
b11e8c67fb0f
debugobsolete: also report the number of obsoleted changesets
Boris Feld <boris.feld@octobus.net>
parents:
31983
diff
changeset
|
64 obsoleted 1 changesets |
35709
1a09dad8b85a
evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents:
35512
diff
changeset
|
65 1 new orphan changesets |
31983
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
66 $ hg log -G --hidden |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
67 @ f6082bc4ffef (draft): A1 |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
68 | |
35512
9b3f95d9783d
graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents:
35400
diff
changeset
|
69 | * d73caddc5533 (draft): B0 |
31983
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
70 | | |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
71 | x 8aaa48160adc (draft): A0 |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
72 |/ |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
73 o 1e4be0697311 (public): root |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
74 |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
75 |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
76 Actual testing |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
77 -------------- |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
78 |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
79 $ hg push --rev 'desc(A1)' |
35400
4441705b7111
tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents:
34661
diff
changeset
|
80 pushing to $TESTTMP/C2/server |
31983
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
81 searching for changes |
45923
122f0b59f5f0
errors: remove trailing "!" in messages about creating new heads on push
Martin von Zweigbergk <martinvonz@google.com>
parents:
42899
diff
changeset
|
82 abort: push creates new remote head f6082bc4ffef |
31983
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
83 (merge or see 'hg help push' for details about pushing new heads) |
46120
9261f6c1d39b
errors: raise StateError when push fails because it creates new heads
Martin von Zweigbergk <martinvonz@google.com>
parents:
45923
diff
changeset
|
84 [20] |
31983
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
85 |
11b6d32e6b2f
obsolescence: add test for the "branch replacement" logic during push, case C2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff
changeset
|
86 $ cd ../.. |