annotate tests/test-push-checkheads-pruned-B6.t @ 45587:768412472663

merge: store cases when a file is absent post merge in commitinfo Some merges can result in file being absent form working directory. This can be one of file was kept deleted or file was removed by merge code. User might revert the file back before committing. In such cases we will like to have better handling and create new filenodes. We store this info in mergestate as commitinfo so that we can use it while committing to create new filenode if required. Differential Revision: https://phab.mercurial-scm.org/D9003
author Pulkit Goyal <7895pulkit@gmail.com>
date Mon, 24 Aug 2020 15:35:34 +0530
parents 34a46d48d24e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
32013
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
1 ====================================
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
2 Testing head checking code: Case B-6
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
3 ====================================
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
4
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
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
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
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
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
7 some of the new one we push.
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
8
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
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.
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
10
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
11 Category B: simple case involving pruned changesets
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
12 TestCase 6: single changesets, pruned then superseeded (on a new changeset)
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
13
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
14 .. old-state:
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
15 ..
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
16 .. * 1 changeset branch
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
17 ..
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
18 .. new-state:
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
19 ..
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
20 .. * old branch is rewritten onto another one,
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
21 .. * the new version is then pruned.
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
22 ..
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
23 .. expected-result:
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
24 ..
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
25 .. * push allowed
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
26 ..
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
27 .. graph-summary:
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
28 ..
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
29 .. A ø⇠⊗ A'
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
30 .. | |
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
31 .. | ◔ B
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
32 .. |/
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
33 .. ●
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
34
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
35 $ . $TESTDIR/testlib/push-checkheads-util.sh
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
36
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
37 Test setup
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
38 ----------
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
39
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
40 $ mkdir B6
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
41 $ cd B6
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
42 $ setuprepos
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
43 creating basic server and client repo
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
44 updating to branch default
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
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
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
46 $ cd client
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
47 $ hg up 0
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
48 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
49 $ mkcommit B0
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
50 created new head
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
51 $ mkcommit A1
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
52 $ hg up 'desc(B0)'
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
53 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
54 $ hg debugobsolete `getid "desc(A0)"` `getid "desc(A1)"`
42893
34a46d48d24e debugobsolete: also issue the "new obsmarkers" messsage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
55 1 new obsolescence markers
33542
b11e8c67fb0f debugobsolete: also report the number of obsoleted changesets
Boris Feld <boris.feld@octobus.net>
parents: 33252
diff changeset
56 obsoleted 1 changesets
32013
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
57 $ hg debugobsolete --record-parents `getid "desc(A1)"`
42893
34a46d48d24e debugobsolete: also issue the "new obsmarkers" messsage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 35393
diff changeset
58 1 new obsolescence markers
33542
b11e8c67fb0f debugobsolete: also report the number of obsoleted changesets
Boris Feld <boris.feld@octobus.net>
parents: 33252
diff changeset
59 obsoleted 1 changesets
32013
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
60 $ hg log -G --hidden
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
61 x ba93660aff8d (draft): A1
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
62 |
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
63 @ 74ff5441d343 (draft): B0
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
64 |
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
65 | x 8aaa48160adc (draft): A0
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
66 |/
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
67 o 1e4be0697311 (public): root
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
68
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
69
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
70 Actual testing
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
71 --------------
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
72
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
73 $ hg push
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 33542
diff changeset
74 pushing to $TESTTMP/B6/server
32013
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
75 searching for changes
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
76 adding changesets
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
77 adding manifests
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
78 adding file changes
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
79 added 1 changesets with 1 changes to 1 files (+1 heads)
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
80 2 new obsolescence markers
33252
53b3a1968aa6 obsolete: reports the number of local changeset obsoleted when unbundling
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 32013
diff changeset
81 obsoleted 1 changesets
32013
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
82
0cf4d6763735 obsolescence: add test for the "branch replacement" logic during push, case B6
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
83 $ cd ../..