tests/test-push-checkheads-partial-C2.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Sun, 09 Feb 2020 01:34:37 +0100
branchstable
changeset 44299 ee0959e7d435
parent 42893 34a46d48d24e
child 45908 122f0b59f5f0
permissions -rw-r--r--
remotefilelog-test: glob some flaky output line (issue6083) The two following lines are flaky underload, yet the final result is correct. The command involves background pre-check of output, these are not stable probably because they run in parallel in multiple process. I spent a couple of hours trying to understand the pattern and gave up. The documented intend of these tests is safely guaranteed by checking the cache content after the command. If it become useful to start testing precise internal details of the, they will have to be tested in a more appropriate framework than `.t` tests. Differential Revision: https://phab.mercurial-scm.org/D8102
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
..
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
    20
.. * 1 new changesets branches superceeding only the base of the old one
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
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/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
39480
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)"`
42893
34a46d48d24e debugobsolete: also issue the "new obsmarkers" messsage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 39480
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: 35508
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
  |
35508
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 35393
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)'
35393
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
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
    82
  abort: push creates new remote head f6082bc4ffef!
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)
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
    84
  [255]
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 ../..