tests/test-push-checkheads-superceed-A2.t
author Gregory Szorc <gregory.szorc@gmail.com>
Tue, 11 Sep 2018 17:20:14 -0700
changeset 39552 4c807ec07888
parent 39480 89630d0b3e23
child 42893 34a46d48d24e
permissions -rw-r--r--
commands: pass include and exclude options to hg.clone() These arguments are defined by the narrow extension. Let's teach core to recognize them so we can delete some code from the narrow extension and start to exercise the in-core code for performing a narrow clone. We have no way of easily testing it, but this change should result in .hg/requires having the narrow requirement from the time the file is written rather than added as part of pull. We'll confirm this when we delete some monkeypatched functions from the narrow extension in later commits. Test output changed because hg.clone() is now receiving patterns and validation of those values is occurring sooner, before the exchange code runs and prints the message that was deleted. Differential Revision: https://phab.mercurial-scm.org/D4538
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
31975
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     1
====================================
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     2
Testing head checking code: Case A-2
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     3
====================================
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     4
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
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
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
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
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     7
some of the new one we push.
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     8
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
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.
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    10
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    11
Category A: simple case involving a branch being superceeded by another.
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    12
TestCase 2: multi-changeset branch
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    13
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    14
.. old-state:
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    15
..
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    16
.. * 1 branch with 2 changesets
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    17
..
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    18
.. new-state:
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    19
..
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    20
.. * another 2-changeset branch succeeding the old one
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    21
..
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    22
.. expected-result:
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    23
..
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    24
.. * push allowed
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    25
..
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    26
.. graph-summary:
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    27
..
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    28
..   B ø⇠◔ B'
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    29
..     | |
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    30
..   A ø⇠◔ A'
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    31
..     |/
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    32
..     ●
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    33
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    34
  $ . $TESTDIR/testlib/push-checkheads-util.sh
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    35
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    36
Test setup
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    37
----------
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    38
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    39
  $ mkdir A2
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    40
  $ cd A2
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    41
  $ setuprepos
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    42
  creating basic server and client repo
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    43
  updating to branch default
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
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
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    45
  $ cd server
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    46
  $ mkcommit B0
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    47
  $ cd ../client
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    48
  $ hg pull
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34661
diff changeset
    49
  pulling from $TESTTMP/A2/server
31975
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    50
  searching for changes
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    51
  adding changesets
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    52
  adding manifests
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    53
  adding file changes
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    54
  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
    55
  new changesets d73caddc5533 (1 drafts)
31975
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    56
  (run 'hg update' to get a working copy)
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    57
  $ hg up 0
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    58
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    59
  $ mkcommit A1
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    60
  created new head
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    61
  $ mkcommit B1
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    62
  $ 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
    63
  obsoleted 1 changesets
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35393
diff changeset
    64
  1 new orphan changesets
31975
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    65
  $ hg debugobsolete `getid "desc(B0)" ` `getid "desc(B1)"`
33542
b11e8c67fb0f debugobsolete: also report the number of obsoleted changesets
Boris Feld <boris.feld@octobus.net>
parents: 33252
diff changeset
    66
  obsoleted 1 changesets
31975
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    67
  $ hg log -G --hidden
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    68
  @  262c8c798096 (draft): B1
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    69
  |
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    70
  o  f6082bc4ffef (draft): A1
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    71
  |
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    72
  | x  d73caddc5533 (draft): B0
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    73
  | |
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    74
  | x  8aaa48160adc (draft): A0
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    75
  |/
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    76
  o  1e4be0697311 (public): root
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    77
  
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    78
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    79
Actual testing
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    80
--------------
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    81
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    82
  $ hg push
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34661
diff changeset
    83
  pushing to $TESTTMP/A2/server
31975
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    84
  searching for changes
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    85
  adding changesets
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    86
  adding manifests
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    87
  adding file changes
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    88
  added 2 changesets with 2 changes to 2 files (+1 heads)
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    89
  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: 31975
diff changeset
    90
  obsoleted 2 changesets
31975
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    91
76169296e52f obsolescence: add test for the "branch replacement" logic during push, case A2
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    92
  $ cd ../..