tests/test-obsolete.t
author Pierre-Yves David <pierre-yves.david@logilab.fr>
Thu, 08 Sep 2011 14:02:29 +0200
changeset 45 d89453a10991
parent 44 b243c10a5fbe
child 46 3b0364fc822f
permissions -rw-r--r--
include hash in test.

  $ cat >> $HGRCPATH <<EOF
  > [web]
  > push_ssl = false
  > allow_push = *
  > [extensions]
  > EOF
  $ echo "obsolete=$(echo $(dirname $TESTDIR))/obsolete.py" >> $HGRCPATH
  $ mkcommit() {
  >    echo "$1" > "$1"
  >    hg add "$1"
  >    hg ci -m "add $1"
  > }

  $ alias qlog="hg log --template='{rev} {node|short}\n'"
  $ hg init local
  $ cd local
  $ mkcommit a # 0
  $ mkcommit b # 1
  $ mkcommit c # 2
  $ hg up 1
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
  $ mkcommit obsol_c # 3
  created new head
  $ hg debugobsolete 3 2


Test that obsolete changeset are hidden

  $ qlog
  3 0d3f46688ccc
  1 7c3bad9141dc
  0 1f0dee641bb7
  $ qlog --hidden
  3 0d3f46688ccc
  2 4538525df7e2
  1 7c3bad9141dc
  0 1f0dee641bb7
  $ qlog -r 'obsolete()' --hidden
  2 4538525df7e2

test obsolete changeset with no-obsolete descendant
  $ hg up 1 -q
  $ mkcommit "obsol_c'" # 4 (on 1)
  created new head
  $ hg debugobsolete 4 3
  $ qlog
  4 725c380fe99b
  1 7c3bad9141dc
  0 1f0dee641bb7
  $ qlog -r 'obsolete()' --hidden
  2 4538525df7e2
  3 0d3f46688ccc
  $ hg up 3 -q
  $ mkcommit d # 5 (on 3)
  $ qlog -r 'obsolete()'
  3 0d3f46688ccc

Test communication of obsolete relation with a compatible client

  $ hg init ../other-new
  $ hg push ../other-new
  pushing to ../other-new
  searching for changes
  adding changesets
  adding manifests
  adding file changes
  added 6 changesets with 6 changes to 6 files (+2 heads)
  $ qlog -R ../other-new -r 'obsolete()'
  3 0d3f46688ccc
  $ qlog -R ../other-new
  5 a7a6f2b5d8a5
  4 725c380fe99b
  3 0d3f46688ccc
  1 7c3bad9141dc
  0 1f0dee641bb7
  $ hg up 3 -q
  $ mkcommit obsol_d # 6
  created new head
  $ hg debugobsolete 6 5
  $ qlog
  6 95de7fc6918d
  4 725c380fe99b
  3 0d3f46688ccc
  1 7c3bad9141dc
  0 1f0dee641bb7
  $ qlog -r 'obsolete()'
  3 0d3f46688ccc
  $ hg push ../other-new -f # XXX should not have to use -f
  pushing to ../other-new
  searching for changes
  adding changesets
  adding manifests
  adding file changes
  added 1 changesets with 1 changes to 1 files (+1 heads)
  $ qlog -R ../other-new
  6 95de7fc6918d
  4 725c380fe99b
  3 0d3f46688ccc
  1 7c3bad9141dc
  0 1f0dee641bb7
  $ qlog -R ../other-new -r 'obsolete()'
  3 0d3f46688ccc
  $ hg up -q .^
  $ mkcommit "obsol_d'" # 7
  created new head
  $ hg debugobsolete 7 6
  $ hg pull -R ../other-new .
  pulling from .
  searching for changes
  adding changesets
  adding manifests
  adding file changes
  added 1 changesets with 1 changes to 1 files (+1 heads)
  (run 'hg heads .' to see heads, 'hg merge' to merge)
  $ qlog -R ../other-new
  7 909a0fb57e5d
  4 725c380fe99b
  3 0d3f46688ccc
  1 7c3bad9141dc
  0 1f0dee641bb7