tests/test-push-checkheads-unpushed-D3.t
author Kyle Lippincott <spectral@google.com>
Mon, 16 Sep 2019 12:42:50 -0700
changeset 4847 0fecff9ac36d
parent 4840 62b60fc1983d
child 4860 015cdd3fa469
permissions -rw-r--r--
cmdstate: avoid setting a default argument to a mutable object (`{}`) If there's ever more than one cmdstate for the lifetime of the process, this can cause surprising behavior where the later cmdstates pick up options from the earlier ones. I've not seen any evidence this is actually causing any issues, but it's subtle enough that it should probably be fixed to help save significant debugging time later.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2252
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     1
====================================
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     2
Testing head checking code: Case D-3
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     3
====================================
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     4
2277
61d885899466 checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2252
diff changeset
     5
Mercurial checks for the introduction of new heads on push. Evolution comes
61d885899466 checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2252
diff changeset
     6
into play to detect if existing branches on the server are being replaced by
61d885899466 checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2252
diff changeset
     7
some of the new one we push.
2252
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     8
2277
61d885899466 checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2252
diff changeset
     9
This case is part of a series of tests checking this behavior.
2252
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    10
2277
61d885899466 checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2252
diff changeset
    11
Category D: remote head is "obs-affected" locally, but result is not part of the push
2252
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    12
TestCase 3: multi-changeset branch, split on multiple new others, only one of them is pushed
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    13
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    14
.. old-state:
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    15
..
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    16
.. * 2 changesets branch
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    17
..
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    18
.. new-state:
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    19
..
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    20
.. * 2 new branches, each superseding one changeset in the old one.
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    21
..
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    22
.. expected-result:
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    23
..
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    24
.. * pushing only one of the resulting branch (either of them)
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    25
.. * push denied
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    26
..
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    27
.. graph-summary:
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    28
..
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    29
.. B'◔⇢ø B
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    30
..   | |
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    31
.. A | ø⇠◔ A'
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    32
..   | |/
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    33
..    \|
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    34
..     
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    35
2277
61d885899466 checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2252
diff changeset
    36
  $ . $TESTDIR/testlib/push-checkheads-util.sh
2252
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    37
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    38
Test setup
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    39
----------
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    40
2277
61d885899466 checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2252
diff changeset
    41
  $ mkdir D3
61d885899466 checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2252
diff changeset
    42
  $ cd D3
2252
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    43
  $ setuprepos
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    44
  creating basic server and client repo
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    45
  updating to branch default
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    46
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    47
  $ cd server
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    48
  $ mkcommit B0
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    49
  $ hg up 0
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    50
  0 files updated, 0 files merged, 2 files removed, 0 files unresolved
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    51
  $ cd ../client
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    52
  $ hg pull
2277
61d885899466 checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2252
diff changeset
    53
  pulling from $TESTTMP/D3/server (glob)
2252
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    54
  searching for changes
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    55
  adding changesets
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    56
  adding manifests
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    57
  adding file changes
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    58
  added 1 changesets with 1 changes to 1 files
4181
ab3581bc0637 branching: preserve the expected output on default
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4165
diff changeset
    59
  new changesets d73caddc5533 (1 drafts)
2252
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    60
  (run 'hg update' to get a working copy)
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    61
  $ hg up 0
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    62
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    63
  $ mkcommit A1
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    64
  created new head
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    65
  $ hg up '0'
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    66
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    67
  $ mkcommit B1
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    68
  created new head
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    69
  $ hg debugobsolete `getid "desc(A0)" ` `getid "desc(A1)"`
4840
62b60fc1983d test: change to output around transaction timing
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4181
diff changeset
    70
  1 new obsolescence markers
2754
21f06d932231 test: update test output to match b11e8c67fb0f
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2277
diff changeset
    71
  obsoleted 1 changesets
3431
2e703ed1c713 evolve: update output for wider reporting of troubled changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 3075
diff changeset
    72
  1 new orphan changesets
2252
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    73
  $ hg debugobsolete `getid "desc(B0)" ` `getid "desc(B1)"`
4840
62b60fc1983d test: change to output around transaction timing
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4181
diff changeset
    74
  1 new obsolescence markers
2754
21f06d932231 test: update test output to match b11e8c67fb0f
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2277
diff changeset
    75
  obsoleted 1 changesets
2252
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    76
  $ hg log -G --hidden
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    77
  @  25c56d33e4c4 (draft): B1
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    78
  |
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    79
  | o  f6082bc4ffef (draft): A1
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    80
  |/
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    81
  | x  d73caddc5533 (draft): B0
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    82
  | |
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    83
  | x  8aaa48160adc (draft): A0
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    84
  |/
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    85
  o  1e4be0697311 (public): root
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    86
  
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    87
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    88
Actual testing
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    89
--------------
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    90
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    91
  $ hg push --rev 'desc(A1)'
2277
61d885899466 checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2252
diff changeset
    92
  pushing to $TESTTMP/D3/server (glob)
2252
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    93
  searching for changes
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    94
  abort: push creates new remote head f6082bc4ffef!
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    95
  (merge or see 'hg help push' for details about pushing new heads)
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    96
  [255]
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    97
  $ hg push --rev 'desc(B1)'
2277
61d885899466 checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2252
diff changeset
    98
  pushing to $TESTTMP/D3/server (glob)
2252
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    99
  searching for changes
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   100
  abort: push creates new remote head 25c56d33e4c4!
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   101
  (merge or see 'hg help push' for details about pushing new heads)
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   102
  [255]
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   103
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   104
Extra testing
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   105
-------------
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   106
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   107
In this case, even a bare push is creating more heads
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   108
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   109
  $ hg push
2277
61d885899466 checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2252
diff changeset
   110
  pushing to $TESTTMP/D3/server (glob)
2252
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   111
  searching for changes
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   112
  abort: push creates new remote head 25c56d33e4c4!
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   113
  (merge or see 'hg help push' for details about pushing new heads)
1353de3e6524 checkheads: add a test of partially pushing a branch spread on multiple other
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
   114
  [255]
2277
61d885899466 checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2252
diff changeset
   115
61d885899466 checkheads: update tests to match the one in core
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2252
diff changeset
   116
  $ cd ../..