annotate tests/test-push-checkheads-partial-C3.t @ 41722:37b33c34bf4f

templatekw: add a {negrev} keyword Revision numbers are getting much maligned for two reasons: they are too long in large repos and users get confused by their local-only nature. It just occurred to me that negative revision numbers avoid both of those problems. Since negative revision numbers change whenever the repo changes, it's much more obvious that they are a local-only convenience. Additionally, for the recent commits that we usually care about the most, negative revision numbers are always near zero. This commit adds a negrev templatekw to more easily expose negative revision numbers. It's not easy to reliably produce this output with existing keywords due to hidden commits while at the same time ensuring good performance.
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Fri, 15 Feb 2019 14:43:31 -0500
parents 89630d0b3e23
children 34a46d48d24e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
31984
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
1 ====================================
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
2 Testing head checking code: Case C-3
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
3 ====================================
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
4
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
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
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
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
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
7 some of the new one we push.
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
8
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
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.
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
10
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
11 Category C: case were the branch is only partially obsoleted
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
12 TestCase 3: 2 changeset branch, only the head is pruned
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
13
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
14 .. old-state:
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
15 ..
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
16 .. * 2 changeset branch
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
17 ..
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
18 .. new-state:
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
19 ..
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
20 .. * old head is pruned
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
21 .. * 1 new unrelated branch
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
22 ..
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
23 .. expected-result:
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
24 ..
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
25 .. * push denied
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
26 ..
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
27 .. graph-summary:
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
28 ..
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
29 .. B ⊗
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
30 .. |
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
31 .. A ◔ ◔ C
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
32 .. |/
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
33 .. ●
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
34
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
35 $ . $TESTDIR/testlib/push-checkheads-util.sh
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
36
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
37 Test setup
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
38 ----------
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
39
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
40 $ mkdir C3
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
41 $ cd C3
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
42 $ setuprepos
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
43 creating basic server and client repo
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
44 updating to branch default
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
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
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
46 $ cd server
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
47 $ mkcommit B0
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
48 $ cd ../client
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
49 $ hg pull
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34661
diff changeset
50 pulling from $TESTTMP/C3/server
31984
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
51 searching for changes
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
52 adding changesets
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
53 adding manifests
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
54 adding file changes
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
55 added 1 changesets with 1 changes to 1 files
39480
89630d0b3e23 phase: report number of non-public changeset alongside the new range
Boris Feld <boris.feld@octobus.net>
parents: 35393
diff changeset
56 new changesets d73caddc5533 (1 drafts)
31984
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
57 (run 'hg update' to get a working copy)
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
58 $ hg up 0
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
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
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
60 $ mkcommit C0
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
61 created new head
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
62 $ hg debugobsolete --record-parents `getid "desc(B0)"`
33542
b11e8c67fb0f debugobsolete: also report the number of obsoleted changesets
Boris Feld <boris.feld@octobus.net>
parents: 31984
diff changeset
63 obsoleted 1 changesets
31984
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
64 $ hg log -G --hidden
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
65 @ 0f88766e02d6 (draft): C0
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
66 |
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
67 | x d73caddc5533 (draft): B0
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
68 | |
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
69 | o 8aaa48160adc (draft): A0
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
70 |/
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
71 o 1e4be0697311 (public): root
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
72
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
73
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
74 Actual testing
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
75 --------------
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
76
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
77 $ hg push
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34661
diff changeset
78 pushing to $TESTTMP/C3/server
31984
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
79 searching for changes
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
80 abort: push creates new remote head 0f88766e02d6!
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
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)
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
82 [255]
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
83
c8f4876c0198 obsolescence: add test for the "branch replacement" logic during push, case C3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
84 $ cd ../..