tests/test-topic-dest.t
author Pierre-Yves David <pierre-yves.david@fb.com>
Wed, 21 Oct 2015 01:09:15 +0200
changeset 1871 58ef5699fb35
parent 1870 8dd5200b4086
child 1875 9eba8561870b
permissions -rw-r--r--
merge: use topic to pick default destination If the topic have multiple heads, reduce that. Otherwise, pick the branch we are on.

  $ . "$TESTDIR/testlib"

  $ hg init jungle
  $ cd jungle
  $ cat <<EOF >> .hg/hgrc
  > [extensions]
  > rebase=
  > [phases]
  > publish=false
  > [ui]
  > logtemplate = '{rev} ({topics}) {desc}\n'
  > EOF

  $ for x in alpha beta gamma delta ; do
  >   echo file $x >> $x
  >   hg add $x
  >   hg ci -m "c_$x"
  > done

Test NGTip feature
==================

Simple linear case

  $ echo babar >> jungle
  $ hg add jungle
  $ hg ci -t elephant -m babar

  $ hg log -G
  @  4 (elephant) babar
  |
  o  3 () c_delta
  |
  o  2 () c_gamma
  |
  o  1 () c_beta
  |
  o  0 () c_alpha
  
  $ hg log -r 'ngtip(.)'
  3 () c_delta


multiple heads with topic

  $ hg up "desc('c_beta')"
  0 files updated, 0 files merged, 3 files removed, 0 files unresolved
  $ echo zephir >> jungle
  $ hg add jungle
  $ hg ci -t monkey -m zephir
  created new head
  $ hg log -G
  @  5 (monkey) zephir
  |
  | o  4 (elephant) babar
  | |
  | o  3 () c_delta
  | |
  | o  2 () c_gamma
  |/
  o  1 () c_beta
  |
  o  0 () c_alpha
  
  $ hg log -r 'ngtip(.)'
  3 () c_delta

one of the head is a valid tip

  $ hg up "desc('c_delta')"
  2 files updated, 0 files merged, 1 files removed, 0 files unresolved
  $ echo epsilon >> epsilon
  $ hg add epsilon
  $ hg ci -m "c_epsilon"
  created new head
  $ hg log -G
  @  6 () c_epsilon
  |
  | o  5 (monkey) zephir
  | |
  +---o  4 (elephant) babar
  | |
  o |  3 () c_delta
  | |
  o |  2 () c_gamma
  |/
  o  1 () c_beta
  |
  o  0 () c_alpha
  
  $ hg log -r 'ngtip(.)'
  6 () c_epsilon

merge destination
=================

  $ hg up 'ngtip(default)'
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  $ echo zeta >> zeta
  $ hg add zeta
  $ hg ci -m "c_zeta"
  created new head
  $ hg log -G
  @  9 () c_zeta
  |
  | o  8 (monkey) zephir
  |/
  | o  7 (elephant) babar
  |/
  o  6 () c_epsilon
  |
  o  3 () c_delta
  |
  o  2 () c_gamma
  |
  o  1 () c_beta
  |
  o  0 () c_alpha
  
  $ hg up elephant
  switching to topic elephant
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
  $ hg rebase # make sure tip is elsewhere
  rebasing 7:8d0b77140b05 "babar"
  $ hg up monkey
  switching to topic monkey
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
  $ hg merge
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  (branch merge, don't forget to commit)
  $ hg topic
     elephant
   * monkey
  $ hg ci -m 'merge with default'
  $ hg topic
     elephant
   * monkey
  $ hg log -G
  @    11 (monkey) merge with default
  |\
  | | o  10 (elephant) babar
  | |/
  | o  9 () c_zeta
  | |
  o |  8 (monkey) zephir
  |/
  o  6 () c_epsilon
  |
  o  3 () c_delta
  |
  o  2 () c_gamma
  |
  o  1 () c_beta
  |
  o  0 () c_alpha