annotate tests/test-push-checkheads-unpushed-D1.t @ 41784:251332dbf33d

diff: make sure we output stat even when --git is not passed (issue4037) (BC) Before this patch, `hg diff --stat` will give an empty output. It will not show the stat information. I debugged and found that the underlying code does not return the diff header and due to that, other code paths fails to parse that as a diff. I looked into why we don't return diff headers in quiet mode and found the behavior is from 8f8bb77d560e70bcc95577e4dfa877df18d876ab which does not have any mention about why it is done. We also show the diff headers in git, so I think it's fine showing diff header in normal diff in quiet mode. Differential Revision: https://phab.mercurial-scm.org/D6007
author Pulkit Goyal <pulkit@yandex-team.ru>
date Fri, 22 Feb 2019 03:52:10 +0530
parents 4441705b7111
children 34a46d48d24e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
31986
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
1 ====================================
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
2 Testing head checking code: Case D-1
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
3 ====================================
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
4
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
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
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
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
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
7 some of the new one we push.
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
8
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
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.
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
10
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
11 Category D: remote head is "obs-affected" locally, but result is not part of the push
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
12 TestCase 1: remote head is rewritten, but successors is not part of the push
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
13
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
14 .. old-state:
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
15 ..
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
16 .. * 1 changeset branch
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
17 ..
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
18 .. new-state:
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
19 ..
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
20 .. * 1 changeset branch succeeding the old branch
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
21 .. * 1 new unrelated branch
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
22 ..
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
23 .. expected-result:
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
24 ..
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
25 .. * pushing only the unrelated branch: denied
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
26 ..
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
27 .. graph-summary:
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
28 ..
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
29 .. A ø⇠○ A'
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
30 .. |/
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
31 .. | ◔ B
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
32 .. |/
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
33 .. ●
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
34
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
35 $ . $TESTDIR/testlib/push-checkheads-util.sh
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
36
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
37 Test setup
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
38 ----------
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
39
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
40 $ mkdir D1
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
41 $ cd D1
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
42 $ setuprepos
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
43 creating basic server and client repo
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
44 updating to branch default
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
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
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
46 $ cd client
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
47 $ hg up 0
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
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
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
49 $ mkcommit A1
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
50 created new head
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
51 $ 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: 31986
diff changeset
52 obsoleted 1 changesets
31986
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
53 $ hg up 0
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
54 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
55 $ mkcommit B0
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
56 created new head
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
57 $ hg log -G --hidden
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
58 @ 74ff5441d343 (draft): B0
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
59 |
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
60 | o f6082bc4ffef (draft): A1
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
61 |/
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
62 | x 8aaa48160adc (draft): A0
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
63 |/
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
64 o 1e4be0697311 (public): root
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
65
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
66
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
67 Actual testing
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
68 --------------
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
69
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
70 $ hg push -r 'desc(B0)'
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 33542
diff changeset
71 pushing to $TESTTMP/D1/server
31986
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
72 searching for changes
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
73 abort: push creates new remote head 74ff5441d343!
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
74 (merge or see 'hg help push' for details about pushing new heads)
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
75 [255]
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
76
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
77 $ cd ../..
f4d5d4f7aee1 obsolescence: add test for the "branch replacement" logic during push, case D1
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
78