annotate tests/test-push-checkheads-pruned-B7.t @ 33611:a2b55ee62803 stable

tests: make pdiff return appropriate exit code at comparison of files Before this patch, pdiff script returns 0, even if diff is detected. This issue doesn't cause failure of tests using it, if it is invoked via extdiff extension, because extdiff itself examines changes between specified revisions and decides exit code. BTW, this patch ignores recursive comparison case, because: - there is no portable way for current while-read based implementation to return 1 at detecting changes - it isn't yet needed to replace direct "diff -r" invocation by pdiff for portability
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Mon, 31 Jul 2017 13:10:19 +0900
parents b11e8c67fb0f
children 4441705b7111
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
32014
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
1 ====================================
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
2 Testing head checking code: Case B-7
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
3 ====================================
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
4
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
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
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
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
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
7 some of the new one we push.
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
8
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
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.
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
10
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
11 Category B: simple case involving pruned changesets
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
12 TestCase 7: single changesets, pruned then superseeded (on an existing changeset)
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
13
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
14 .. old-state:
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
15 ..
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
16 .. * 1 changeset branch
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
17 ..
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
18 .. new-state:
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
19 ..
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
20 .. * old branch is rewritten onto the common set,
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
21 .. * the new version is then pruned.
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
22 ..
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
23 .. expected-result:
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
24 ..
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
25 .. * push allowed
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
26 ..
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
27 .. graph-summary:
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
28 ..
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
29 .. A ø⇠⊗ A'
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
30 .. B ◔ | |
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
31 .. \|/
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
32 .. ●
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
33
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
34 $ . $TESTDIR/testlib/push-checkheads-util.sh
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
35
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
36 Test setup
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
37 ----------
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
38
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
39 $ mkdir B7
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
40 $ cd B7
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
41 $ setuprepos
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
42 creating basic server and client repo
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
43 updating to branch default
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
44 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
45 $ cd client
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
46 $ hg up 0
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
47 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
48 $ mkcommit B0
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
49 created new head
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
50 $ mkcommit A1
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
51 $ hg up 'desc(B0)'
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
52 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
53 $ hg debugobsolete `getid "desc(A0)"` `getid "desc(A1)"`
33542
b11e8c67fb0f debugobsolete: also report the number of obsoleted changesets
Boris Feld <boris.feld@octobus.net>
parents: 33252
diff changeset
54 obsoleted 1 changesets
32014
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
55 $ hg debugobsolete --record-parents `getid "desc(A1)"`
33542
b11e8c67fb0f debugobsolete: also report the number of obsoleted changesets
Boris Feld <boris.feld@octobus.net>
parents: 33252
diff changeset
56 obsoleted 1 changesets
32014
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
57 $ hg log -G --hidden
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
58 x ba93660aff8d (draft): A1
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
59 |
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
60 @ 74ff5441d343 (draft): B0
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
61 |
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
62 | x 8aaa48160adc (draft): A0
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
63 |/
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
64 o 1e4be0697311 (public): root
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
65
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
66
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
67 Actual testing
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
68 --------------
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
69
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
70 $ hg push
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
71 pushing to $TESTTMP/B7/server (glob)
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
72 searching for changes
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
73 adding changesets
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
74 adding manifests
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
75 adding file changes
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
76 added 1 changesets with 1 changes to 1 files (+1 heads)
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
77 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: 32014
diff changeset
78 obsoleted 1 changesets
32014
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
79
818cc18a7574 obsolescence: add test for the "branch replacement" logic during push, case B7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
80 $ cd ../..