Mercurial > evolve
view tests/test-exchange-A1.t @ 827:f62ff54c893b
exchange: add test case for A.1
Testcase defined here: http://mercurial.selenic.com/wiki/ObsolescenceMarkersExchange
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Fri, 28 Feb 2014 16:21:22 -0800 |
parents | |
children | 0943f327e2fb |
line wrap: on
line source
Initial setup $ cat >> $HGRCPATH <<EOF > [web] > push_ssl = false > allow_push = * > [ui] > logtemplate ="{node|short} ({phase}): {desc}\n" > [phases] > publish=False > [extensions] > hgext.rebase= > EOF $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext/evolve.py" >> $HGRCPATH $ mkcommit() { > echo "$1" > "$1" > hg add "$1" > hg ci -m "$1" > } $ getid() { > hg id --hidden --debug -ir "$1" > } ==== A.1.1 pushing a single head ==== .. .. {{{ .. ⇠◔ A .. | .. ● O .. }}} .. .. Marker exist from: .. .. * A .. .. Command run: .. .. * hg push -r A .. * hg push .. .. Expected exchange: .. .. * chain from A Setup --------------- initial $ mkdir A.1.1 $ cd A.1.1 $ hg init source $ hg init dest $ hg init other $ cd source $ mkcommit O $ hg phase --public . $ hg push -q ../dest $ hg push -q ../other $ mkcommit A $ hg debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa `getid 'desc(A)'` $ hg log -G @ f5bc6836db60 (draft): A | o a9bdc8b26820 (public): O $ hg debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {'date': '', 'user': 'test'} $ cd .. $ cd .. setup both variants $ cp -r A.1.1 A.1.1.a $ cp -r A.1.1 A.1.1.b Variante a: push -r A --------------------- $ cd A.1.1.a $ hg -R source id -r 'desc(A)' f5bc6836db60 tip $ hg -R source debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {'date': '', 'user': 'test'} $ hg -R dest debugobsolete $ hg -R other debugobsolete $ hg -R source push -r 'desc(A)' dest pushing to dest searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files OBSEXC: computing relevant nodes OBSEXC: computing markers relevant to 2 nodes OBSEXC: encoding 1 markers OBSEXC: sending 1 pushkey payload (78 bytes) OBSEXC: DONE $ hg -R source debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {'date': '', 'user': 'test'} $ hg -R dest debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {'date': '', 'user': 'test'} $ hg -R other debugobsolete $ hg -R other pull -r 'f5bc6836db60' dest pulling from dest searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files OBSEXC: pull obsolescence markers OBSEXC: merging obsolescence markers (62 bytes) OBSEXC: 1 markers added OBSEXC: DONE (run 'hg update' to get a working copy) $ hg -R source debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {'date': '', 'user': 'test'} $ hg -R dest debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {'date': '', 'user': 'test'} $ hg -R other debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {'date': '', 'user': 'test'} $ cd .. Variante b: push --------------------- $ cd A.1.1.b $ hg -R source id -r 'desc(A)' f5bc6836db60 tip $ hg -R source debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {'date': '', 'user': 'test'} $ hg -R dest debugobsolete $ hg -R other debugobsolete $ hg -R source push dest pushing to dest searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files OBSEXC: computing relevant nodes OBSEXC: computing markers relevant to 2 nodes OBSEXC: encoding 1 markers OBSEXC: sending 1 pushkey payload (78 bytes) OBSEXC: DONE $ hg -R source debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {'date': '', 'user': 'test'} $ hg -R dest debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {'date': '', 'user': 'test'} $ hg -R other debugobsolete $ hg -R other pull dest pulling from dest searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files OBSEXC: pull obsolescence markers OBSEXC: merging obsolescence markers (62 bytes) OBSEXC: 1 markers added OBSEXC: DONE (run 'hg update' to get a working copy) $ hg -R source debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {'date': '', 'user': 'test'} $ hg -R dest debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {'date': '', 'user': 'test'} $ hg -R other debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {'date': '', 'user': 'test'} $ cd .. ==== A.1.2 pushing a multiple changeset into a single head ==== .. {{{ .. ◔ B .. | .. ⇠◔ A .. | .. ● O .. }}} .. .. Marker exist from: .. .. * A .. .. Command run: .. .. * hg push -r B .. * hg push .. .. Expected exchange: .. .. * chain from A Setup --------------- initial $ mkdir A.1.2 $ cd A.1.2 $ hg init source $ hg init dest $ hg init other $ cd source $ mkcommit O $ hg phase --public . $ hg push -q ../dest $ hg push -q ../other $ mkcommit A $ mkcommit B $ hg log -G @ f6fbb35d8ac9 (draft): B | o f5bc6836db60 (draft): A | o a9bdc8b26820 (public): O $ hg debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa `getid 'desc(A)'` $ hg debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {'date': '', 'user': 'test'} $ cd .. $ cd .. setup both variants $ cp -r A.1.2 A.1.2.a $ cp -r A.1.2 A.1.2.b Variante a: push -r A --------------------- $ cd A.1.2.a $ hg -R source id -r 'desc(B)' f6fbb35d8ac9 tip $ hg -R source debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {'date': '', 'user': 'test'} $ hg -R dest debugobsolete $ hg -R other debugobsolete $ hg -R source push -r 'desc(B)' dest pushing to dest searching for changes adding changesets adding manifests adding file changes added 2 changesets with 2 changes to 2 files OBSEXC: computing relevant nodes OBSEXC: computing markers relevant to 3 nodes OBSEXC: encoding 1 markers OBSEXC: sending 1 pushkey payload (78 bytes) OBSEXC: DONE $ hg -R source debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {'date': '', 'user': 'test'} $ hg -R dest debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {'date': '', 'user': 'test'} $ hg -R other debugobsolete $ hg -R other pull -r 'f6fbb35d8ac9' dest pulling from dest searching for changes adding changesets adding manifests adding file changes added 2 changesets with 2 changes to 2 files OBSEXC: pull obsolescence markers OBSEXC: merging obsolescence markers (62 bytes) OBSEXC: 1 markers added OBSEXC: DONE (run 'hg update' to get a working copy) $ hg -R source debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {'date': '', 'user': 'test'} $ hg -R dest debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {'date': '', 'user': 'test'} $ hg -R other debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {'date': '', 'user': 'test'} $ cd .. Variante b: push --------------------- $ cd A.1.2.b $ hg -R source id -r 'desc(B)' f6fbb35d8ac9 tip $ hg -R source debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {'date': '', 'user': 'test'} $ hg -R dest debugobsolete $ hg -R other debugobsolete $ hg -R source push dest pushing to dest searching for changes adding changesets adding manifests adding file changes added 2 changesets with 2 changes to 2 files OBSEXC: computing relevant nodes OBSEXC: computing markers relevant to 3 nodes OBSEXC: encoding 1 markers OBSEXC: sending 1 pushkey payload (78 bytes) OBSEXC: DONE $ hg -R source debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {'date': '', 'user': 'test'} $ hg -R dest debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {'date': '', 'user': 'test'} $ hg -R other debugobsolete $ hg -R other pull dest pulling from dest searching for changes adding changesets adding manifests adding file changes added 2 changesets with 2 changes to 2 files OBSEXC: pull obsolescence markers OBSEXC: merging obsolescence markers (62 bytes) OBSEXC: 1 markers added OBSEXC: DONE (run 'hg update' to get a working copy) $ hg -R source debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {'date': '', 'user': 'test'} $ hg -R dest debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {'date': '', 'user': 'test'} $ hg -R other debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {'date': '', 'user': 'test'} $ cd ..