tests/test-push-checkheads-partial-C1.t
author Martin von Zweigbergk <martinvonz@google.com>
Thu, 27 Sep 2018 23:01:26 -0700
changeset 40083 48a0ce67d67a
parent 39480 89630d0b3e23
child 42893 34a46d48d24e
permissions -rw-r--r--
status: intersect matcher with narrow matcher instead of filtering afterwards I seem to have done a very naive move of the code from the narrow extension into core in e411774a2e0f (narrow: move status-filtering to core and to ctx, 2018-08-02). It seems obvious that a better way is to intersect the matchers. Note that this means that when requesting status for the working directory in a narrow repo, we now pass the narrow matcher (possibly intersected with a user-provided matcher) into _buildstatus() and then into dirstate.status() and dirstate.walk(), which will the intersect it again with the narrow matcher. That's functionally fine, but wasteful. I hope to later remove the dirstate wrapping that adds the second layer of matcher intersection. Differential Revision: https://phab.mercurial-scm.org/D4897
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
32330
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     1
====================================
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     2
Testing head checking code: Case C-2
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     3
====================================
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     4
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     5
Mercurial checks for the introduction of new heads on push. Evolution comes
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     6
into play to detect if existing branches on the server are being replaced by
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     7
some of the new one we push.
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     8
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     9
This case is part of a series of tests checking this behavior.
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    10
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    11
Category C: checking case were the branch is only partially obsoleted.
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    12
TestCase 1: 2 changeset branch, only the head is rewritten
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    13
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    14
.. old-state:
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    15
..
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    16
.. * 2 changeset branch
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    17
..
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    18
.. new-state:
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    19
..
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    20
.. * 1 new changesets branches superceeding only the head of the old one
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    21
.. * base of the old branch is still alive
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    22
..
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    23
.. expected-result:
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    24
..
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    25
.. * push denied
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    26
..
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    27
.. graph-summary:
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    28
..
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    29
..   B ø⇠◔ B'
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    30
..     | |
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    31
..   A ○ |
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    32
..     |/
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    33
..     ○
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    34
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    35
  $ . $TESTDIR/testlib/push-checkheads-util.sh
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    36
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    37
Test setup
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    38
----------
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    39
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    40
  $ mkdir C1
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    41
  $ cd C1
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    42
  $ setuprepos
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    43
  creating basic server and client repo
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    44
  updating to branch default
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    45
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    46
  $ cd server
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    47
  $ mkcommit B0
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    48
  $ cd ../client
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
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/C1/server
32330
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    51
  searching for changes
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    52
  adding changesets
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    53
  adding manifests
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    54
  adding file changes
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
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)
32330
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    57
  (run 'hg update' to get a working copy)
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    58
  $ hg up 0
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    59
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    60
  $ mkcommit B1
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    61
  created new head
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    62
  $ 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: 32330
diff changeset
    63
  obsoleted 1 changesets
32330
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    64
  $ hg log -G --hidden
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    65
  @  25c56d33e4c4 (draft): B1
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    66
  |
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    67
  | x  d73caddc5533 (draft): B0
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    68
  | |
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    69
  | o  8aaa48160adc (draft): A0
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    70
  |/
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    71
  o  1e4be0697311 (public): root
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    72
  
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    73
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    74
Actual testing
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    75
--------------
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    76
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
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/C1/server
32330
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    79
  searching for changes
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    80
  abort: push creates new remote head 25c56d33e4c4!
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    81
  (merge or see 'hg help push' for details about pushing new heads)
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    82
  [255]
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    83
ab5f5429e3d2 tests: add missing 'test-push-checkheads-partial-C1.t'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    84
  $ cd ../..