Mercurial > evolve
view tests/test-obsolete.t @ 169:06c942f9bac6
auc improvement of the doc
author | Pierre-Yves David <pierre-yves.david@logilab.fr> |
---|---|
date | Tue, 27 Mar 2012 17:28:47 +0200 |
parents | f12fd2410a60 |
children | 80f602e6ae8a |
line wrap: on
line source
$ cat >> $HGRCPATH <<EOF > [web] > push_ssl = false > allow_push = * > [phases] > publish=False > [obsolete] > secret-unstable=no > [alias] > odiff=diff --rev 'limit(obsparents(.),1)' --rev . > [extensions] > EOF $ echo "obsolete=$(echo $(dirname $TESTDIR))/hgext/obsolete.py" >> $HGRCPATH $ mkcommit() { > echo "$1" > "$1" > hg add "$1" > hg ci -m "add $1" > } $ alias qlog="hg log --template='{rev}\n- {node|short}\n'" $ hg init local $ cd local $ mkcommit a # 0 $ hg phase -p . $ 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 that obsolete parent a properly computed $ qlog -r 'obsparents(.)' --hidden 2 - 4538525df7e2 $ qlog -r . 3 - 0d3f46688ccc $ hg odiff diff -r 4538525df7e2 -r 0d3f46688ccc c --- a/c Thu Jan 01 00:00:00 1970 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -c diff -r 4538525df7e2 -r 0d3f46688ccc obsol_c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/obsol_c Thu Jan 01 00:00:00 1970 +0000 @@ -0,0 +1,1 @@ +obsol_c 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 $ qlog -r 'obsancestors(4)' --hidden 2 - 4538525df7e2 3 - 0d3f46688ccc $ hg up 3 -q Working directory parent is obsolete $ mkcommit d # 5 (on 3) $ qlog -r 'obsolete()' 3 - 0d3f46688ccc $ qlog -r 'extinct()' --hidden 2 - 4538525df7e2 $ qlog -r 'suspended()' 3 - 0d3f46688ccc $ qlog -r 'unstable()' 5 - a7a6f2b5d8a5 Test communication of obsolete relation with a compatible client $ hg init ../other-new $ hg phase --draft 'secret() - extinct()' # until we fix exclusion $ hg push --traceback ../other-new pushing to ../other-new searching for changes adding changesets adding manifests adding file changes added 5 changesets with 5 changes to 5 files (+1 heads) $ qlog -R ../other-new -r 'obsolete()' 2 - 0d3f46688ccc $ qlog -R ../other-new 4 - a7a6f2b5d8a5 3 - 725c380fe99b 2 - 0d3f46688ccc 1 - 7c3bad9141dc 0 - 1f0dee641bb7 $ hg up 3 -q Working directory parent is obsolete $ 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 5 - 95de7fc6918d 3 - 725c380fe99b 2 - 0d3f46688ccc 1 - 7c3bad9141dc 0 - 1f0dee641bb7 $ qlog -R ../other-new -r 'obsolete()' 2 - 0d3f46688ccc $ hg up -q .^ # 3 Working directory parent is obsolete $ 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 6 - 909a0fb57e5d 3 - 725c380fe99b 2 - 0d3f46688ccc 1 - 7c3bad9141dc 0 - 1f0dee641bb7 pushing to stuff that doesn't support obsolete $ hg init ../other-old > # XXX I don't like this but changeset get published otherwise > # remove it when we will get a --keep-state flag for push $ echo '[extensions]' > ../other-old/.hg/hgrc $ echo "obsolete=!$(echo $(dirname $TESTDIR))/obsolete.py" >> ../other-old/.hg/hgrc $ hg push ../other-old pushing to ../other-old searching for changes adding changesets adding manifests adding file changes added 5 changesets with 5 changes to 5 files (+1 heads) $ qlog -R ../other-old 4 - 909a0fb57e5d 3 - 725c380fe99b 2 - 0d3f46688ccc 1 - 7c3bad9141dc 0 - 1f0dee641bb7 clone support $ hg clone . ../cloned > # The warning should go away once we have default value to set ready before we pull requesting all changes adding changesets adding manifests adding file changes added 5 changesets with 5 changes to 5 files (+1 heads) updating to branch default 4 files updated, 0 files merged, 0 files removed, 0 files unresolved $ qlog -R ../cloned 4 - 909a0fb57e5d 3 - 725c380fe99b 2 - 0d3f46688ccc 1 - 7c3bad9141dc 0 - 1f0dee641bb7 Test rollback support $ hg up .^ -q # 3 Working directory parent is obsolete $ mkcommit "obsol_d''" created new head $ hg debugobsolete 8 7 $ hg -R ../other-new pull . 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 - 159dfc9fa5d3 3 - 725c380fe99b 2 - 0d3f46688ccc 1 - 7c3bad9141dc 0 - 1f0dee641bb7 $ hg -R ../other-new rollback repository tip rolled back to revision 6 (undo pull) $ qlog -R ../other-new 6 - 909a0fb57e5d 3 - 725c380fe99b 2 - 0d3f46688ccc 1 - 7c3bad9141dc 0 - 1f0dee641bb7 obsolete public changeset # move draft boundary from 0 to 1 $ sed -e 's/1f0dee641bb7258c56bd60e93edfa2405381c41e/7c3bad9141dcb46ff89abf5f61856facd56e476c/' -i'.back' .hg/store/phaseroots $ hg up null 0 files updated, 0 files merged, 4 files removed, 0 files unresolved $ mkcommit toto # 9 created new head $ hg id -n 9 $ hg debugobsolete 9 0 83b5778897ad try to obsolete immutable changeset 1f0dee641bb7 $ qlog -r 'obsolete()' 3 - 0d3f46688ccc allow to just kill changeset $ qlog 9 - 83b5778897ad 8 - 159dfc9fa5d3 4 - 725c380fe99b 3 - 0d3f46688ccc 1 - 7c3bad9141dc 0 - 1f0dee641bb7 $ hg debugobsolete null 9 #kill $ hg up null -q # to be not based on 9 anymore $ qlog 8 - 159dfc9fa5d3 4 - 725c380fe99b 3 - 0d3f46688ccc 1 - 7c3bad9141dc 0 - 1f0dee641bb7 check rebase compat $ hg --config extensions.graphlog= glog -r 'not extinct()' --template='{rev} - {node|short}\n' o 8 - 159dfc9fa5d3 | | o 4 - 725c380fe99b | | o | 3 - 0d3f46688ccc |/ o 1 - 7c3bad9141dc | o 0 - 1f0dee641bb7 $ hg --config extensions.graphlog= glog --template='{rev} - {node|short}\n' o 9 - 83b5778897ad o 8 - 159dfc9fa5d3 | | o 7 - 909a0fb57e5d |/ | o 6 - 95de7fc6918d |/ | o 5 - a7a6f2b5d8a5 |/ | o 4 - 725c380fe99b | | o | 3 - 0d3f46688ccc |/ | o 2 - 4538525df7e2 |/ o 1 - 7c3bad9141dc | o 0 - 1f0dee641bb7 should not rebase extinct changeset $ hg --config extensions.hgext.rebase= rebase -b 3 -d 4 --traceback $ hg --config extensions.graphlog= glog -r 'not extinct()' --template='{rev} - {node|short}\n' @ 11 - 9468a5f5d8b2 | o 10 - 2033b4e49474 | o 4 - 725c380fe99b | o 1 - 7c3bad9141dc | o 0 - 1f0dee641bb7