tests/test-push-checkheads-superceed-A8.t
author Matt Harbison <matt_harbison@yahoo.com>
Tue, 02 Oct 2018 22:40:01 -0400
changeset 39986 138e2d6d3b53
parent 35393 4441705b7111
child 42893 34a46d48d24e
permissions -rw-r--r--
setup: ignore message about disabling 3rd party extensions because of version I started getting into a bind recently when switching between py2 and py3 because switching requires a `make clean`, which kills __version__.py. But then when running `make local`, it picks up the local hg.exe (MSYS seems to prefix $PATH with '.'), which doesn't know its version. That causes it to emit a warning about needing at least 4.3 to load evolve, which caused setup.py to fail saying there is no working hg executable to figure out the version. If we can ignore general extension import failures, we should be able to ignore this too.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
31981
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     1
====================================
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     2
Testing head checking code: Case A-8
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     3
====================================
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     4
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
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
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
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
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     7
some of the new one we push.
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     8
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
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.
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    10
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    11
Category A: simple case involving a branch being superceeded by another.
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    12
TestCase 8: single-changeset branch indirect rewrite
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    13
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    14
.. old-state:
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    15
..
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    16
.. * 1-changeset branch
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    17
..
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    18
.. new-state:
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    19
..
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    20
.. * 1-changeset branch succeeding to A, through another unpushed changesets
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    21
..
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    22
.. expected-result:
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    23
..
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    24
.. * push allowed
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    25
..
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    26
.. graph-summary:
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    27
..
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    28
..       A'
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    29
..   A ø⇠ø⇠◔ A''
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    30
..     |/ /
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    31
..     | /
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    32
..     |/
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    33
..     ●
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    34
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    35
  $ . $TESTDIR/testlib/push-checkheads-util.sh
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    36
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    37
Test setup
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    38
----------
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    39
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    40
  $ mkdir A8
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    41
  $ cd A8
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    42
  $ setuprepos
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    43
  creating basic server and client repo
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    44
  updating to branch default
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
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
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    46
  $ cd client
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    47
  $ hg up 0
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
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
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    49
  $ mkcommit A1
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    50
  created new head
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    51
  $ hg up 0
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    52
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    53
  $ mkcommit A2
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    54
  created new head
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    55
  $ 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
    56
  obsoleted 1 changesets
31981
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    57
  $ hg debugobsolete `getid "desc(A1)" ` `getid "desc(A2)"`
33542
b11e8c67fb0f debugobsolete: also report the number of obsoleted changesets
Boris Feld <boris.feld@octobus.net>
parents: 33252
diff changeset
    58
  obsoleted 1 changesets
31981
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    59
  $ hg log -G --hidden
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    60
  @  c1f8d089020f (draft): A2
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    61
  |
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    62
  | x  f6082bc4ffef (draft): A1
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    63
  |/
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    64
  | x  8aaa48160adc (draft): A0
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    65
  |/
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    66
  o  1e4be0697311 (public): root
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    67
  
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    68
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    69
Actual testing
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    70
--------------
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    71
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    72
  $ hg push
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 33542
diff changeset
    73
  pushing to $TESTTMP/A8/server
31981
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    74
  searching for changes
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    75
  adding changesets
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    76
  adding manifests
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    77
  adding file changes
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    78
  added 1 changesets with 1 changes to 1 files (+1 heads)
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    79
  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: 31981
diff changeset
    80
  obsoleted 1 changesets
31981
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    81
259f4e02533b obsolescence: add test for the "branch replacement" logic during push, case A8
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    82
  $ cd ../..