view tests/test-show-underway.t @ 32013:0cf4d6763735

obsolescence: add test for the "branch replacement" logic during push, case B6 Mercurial checks for the introduction of new heads on push. Evolution comes into play to detect if existing branches on the server are being replaced by some of the new one we push. This changeset adds test for the improved "branch replacement" logic introduce in an earlier commits. This tests initially lived in the evolve extensions. Since we now have the code handling this logic in core, it make sense to have the tests in core too. See inline documentation for details about the test case added in this changeset.
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
date Sat, 15 Apr 2017 02:53:42 +0200
parents 99bc93147d87
children
line wrap: on
line source

  $ cat >> $HGRCPATH << EOF
  > [extensions]
  > show =
  > EOF

  $ hg init repo0
  $ cd repo0

Command works on an empty repo

  $ hg show underway

Single draft changeset shown

  $ echo 0 > foo
  $ hg -q commit -A -m 'commit 0'

  $ hg show underway
  @  9f171 commit 0

Even when it isn't the wdir

  $ hg -q up null

  $ hg show underway
  o  9f171 commit 0

Single changeset is still there when public because it is a head

  $ hg phase --public -r 0
  $ hg show underway
  o  9f171 commit 0

A draft child will show both it and public parent

  $ hg -q up 0
  $ echo 1 > foo
  $ hg commit -m 'commit 1'

  $ hg show underway
  @  181cc commit 1
  o  9f171 commit 0

Multiple draft children will be shown

  $ echo 2 > foo
  $ hg commit -m 'commit 2'

  $ hg show underway
  @  128c8 commit 2
  o  181cc commit 1
  o  9f171 commit 0

Bumping first draft changeset to public will hide its parent

  $ hg phase --public -r 1
  $ hg show underway
  @  128c8 commit 2
  o  181cc commit 1
  |
  ~

Multiple DAG heads will be shown

  $ hg -q up -r 1
  $ echo 3 > foo
  $ hg commit -m 'commit 3'
  created new head

  $ hg show underway
  @  f0abc commit 3
  | o  128c8 commit 2
  |/
  o  181cc commit 1
  |
  ~

Even when wdir is something else

  $ hg -q up null

  $ hg show underway
  o  f0abc commit 3
  | o  128c8 commit 2
  |/
  o  181cc commit 1
  |
  ~

Draft child shows public head (multiple heads)

  $ hg -q up 0
  $ echo 4 > foo
  $ hg commit -m 'commit 4'
  created new head

  $ hg show underway
  @  668ca commit 4
  | o  f0abc commit 3
  | | o  128c8 commit 2
  | |/
  | o  181cc commit 1
  |/
  o  9f171 commit 0

  $ cd ..

Branch name appears in output

  $ hg init branches
  $ cd branches
  $ echo 0 > foo
  $ hg -q commit -A -m 'commit 0'
  $ echo 1 > foo
  $ hg commit -m 'commit 1'
  $ echo 2 > foo
  $ hg commit -m 'commit 2'
  $ hg phase --public -r .
  $ hg -q up -r 1
  $ hg branch mybranch
  marked working directory as branch mybranch
  (branches are permanent and global, did you want a bookmark?)
  $ echo 3 > foo
  $ hg commit -m 'commit 3'
  $ echo 4 > foo
  $ hg commit -m 'commit 4'

  $ hg show underway
  @  f8dd3 (mybranch) commit 4
  o  90cfc (mybranch) commit 3
  | o  128c8 commit 2
  |/
  o  181cc commit 1
  |
  ~

  $ cd ..

Bookmark name appears in output

  $ hg init bookmarks
  $ cd bookmarks
  $ echo 0 > foo
  $ hg -q commit -A -m 'commit 0'
  $ echo 1 > foo
  $ hg commit -m 'commit 1'
  $ echo 2 > foo
  $ hg commit -m 'commit 2'
  $ hg phase --public -r .
  $ hg bookmark @
  $ hg -q up -r 1
  $ echo 3 > foo
  $ hg commit -m 'commit 3'
  created new head
  $ echo 4 > foo
  $ hg commit -m 'commit 4'
  $ hg bookmark mybook

  $ hg show underway
  @  cac82 (mybook) commit 4
  o  f0abc commit 3
  | o  128c8 (@) commit 2
  |/
  o  181cc commit 1
  |
  ~

  $ cd ..