tests/test-draft.t
changeset 12 6312fc525a54
parent 10 91169d2d7f1b
child 15 a38b3d0a1562
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-draft.t	Wed May 25 02:04:12 2011 +0200
@@ -0,0 +1,209 @@
+  $ cat >> $HGRCPATH <<EOF
+  > [web]
+  > push_ssl = false
+  > allow_push = *
+  > [extensions]
+  > EOF
+  $ echo "states=$(echo $(dirname $TESTDIR))/states.py" >> $HGRCPATH
+
+  $ hg init local
+  $ hg init remote1
+  $ hg init remote2
+  $ cd local
+  $ echo "celestine" > babar
+  $ hg add babar
+  $ hg ci -m "add babar"
+  $ echo "la veille dame" > babar
+  $ hg ci -m "add dame"
+  $ hg log --template='{rev}:{node|short}: {state}\n'
+  1:710fe444b3b0: published
+  0:5caa672bac26: published
+  $ hg out  ../remote1 --template='{rev}:{node|short}\n'
+  comparing with ../remote1
+  searching for changes
+  0:5caa672bac26
+  1:710fe444b3b0
+  $ hg push ../remote1
+  pushing to ../remote1
+  searching for changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 2 changesets with 2 changes to 1 files
+  $ hg setstate published 1 # until we fix push
+  $ echo "tree" >> savanna
+  $ hg add savanna
+  $ hg ci -m "terrain"
+  $ echo "flore" >> babar
+  $ hg ci -m "children"
+  $ hg log --template='{rev}:{node|short}: {state}\n'
+  3:73585b17392a: published
+  2:3c8695235a32: published
+  1:710fe444b3b0: published
+  0:5caa672bac26: published
+
+turn draft on (repo side)
+  $ cat > .hg/hgrc << EOF
+  > [states]
+  > draft=yes
+  > EOF
+  $ hg log --template='{rev}:{node|short}: {state}\n'
+  3:73585b17392a: draft
+  2:3c8695235a32: draft
+  1:710fe444b3b0: published
+  0:5caa672bac26: published
+
+test outgoing and push
+  $ hg out  ../remote1 --template='{rev}:{node|short}\n'
+  comparing with ../remote1
+  searching for changes
+  no changes found
+  [1]
+  $ hg push  ../remote1
+  pushing to ../remote1
+  searching for changes
+  no changes found
+
+  $ hg out  ../remote2 --template='{rev}:{node|short}\n'
+  comparing with ../remote2
+  searching for changes
+  0:5caa672bac26
+  1:710fe444b3b0
+  $ hg push  ../remote2
+  pushing to ../remote2
+  searching for changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 2 changesets with 2 changes to 1 files
+
+turn draft off again (repo side)
+  $ sed -i 's/^draft=.*$/draft=no/' .hg/hgrc
+  $ hg log --template='{rev}:{node|short}: {state}\n'
+  3:73585b17392a: published
+  2:3c8695235a32: published
+  1:710fe444b3b0: published
+  0:5caa672bac26: published
+  $ hg out  ../remote1 --template='{rev}:{node|short}\n'
+  comparing with ../remote1
+  searching for changes
+  2:3c8695235a32
+  3:73585b17392a
+
+turn draft on again (repo side)
+  $ sed -i 's/^draft=.*$/draft=yes/' .hg/hgrc
+
+test incoming and pull
+
+  $ hg init ../other1
+  $ cd ../other1
+  $ hg incoming ../local --template='{rev}:{node|short}\n'
+  comparing with ../local
+  0:5caa672bac26
+  1:710fe444b3b0
+  $ hg pull  ../local
+  pulling from ../local
+  requesting all changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 2 changesets with 2 changes to 1 files
+  (run 'hg update' to get a working copy)
+  $ hg log --template='{rev}:{node|short}\n'
+  1:710fe444b3b0
+  0:5caa672bac26
+  $ cd ..
+  $ hg clone local other2
+  requesting all changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 2 changesets with 2 changes to 1 files
+  updating to branch default
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ hg -R other2 log --template='{rev}:{node|short}\n'
+  1:710fe444b3b0
+  0:5caa672bac26
+
+test on http
+
+  $ hg -R local serve -p $HGPORT -d --pid-file=local.pid
+  $ cat local.pid >> "$DAEMON_PIDS"
+  $ hg clone http://localhost:$HGPORT/ fromhttp
+  requesting all changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 2 changesets with 2 changes to 1 files
+  updating to branch default
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ hg -R fromhttp log --template='{rev}:{node|short}\n'
+  1:710fe444b3b0
+  0:5caa672bac26
+
+  $ hg init fromhttp2
+  $ cd fromhttp2
+  $ hg inc http://localhost:$HGPORT/ --template='{rev}:{node|short}\n'
+  comparing with http://localhost:$HGPORT/
+  0:5caa672bac26
+  1:710fe444b3b0
+  $ hg pull http://localhost:$HGPORT/
+  pulling from http://localhost:$HGPORT/
+  requesting all changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 2 changesets with 2 changes to 1 files
+  (run 'hg update' to get a working copy)
+  $ hg log --template='{rev}:{node|short}\n'
+  1:710fe444b3b0
+  0:5caa672bac26
+  $ hg inc http://localhost:$HGPORT/ --template='{rev}:{node|short}\n'
+  comparing with http://localhost:$HGPORT/
+  searching for changes
+  no changes found
+  [1]
+
+turn draft off again (repo side)
+  $ cd ..
+  $ "$TESTDIR/killdaemons.py"
+  $ sed -i 's/^draft=.*$/draft=off/' ./local/.hg/hgrc
+  $ hg -R local serve -p $HGPORT -d --pid-file=local.pid
+  $ cat local.pid >> "$DAEMON_PIDS"
+  $ cd fromhttp2
+
+  $ hg inc http://localhost:$HGPORT/ --template='{rev}:{node|short}\n'
+  comparing with http://localhost:$HGPORT/
+  searching for changes
+  2:3c8695235a32
+  3:73585b17392a
+  $ hg pull http://localhost:$HGPORT/
+  pulling from http://localhost:$HGPORT/
+  searching for changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 2 changesets with 2 changes to 2 files
+  (run 'hg update' to get a working copy)
+  $ cd ..
+  $ "$TESTDIR/killdaemons.py"
+
+turn draft on again (repo side)
+  $ sed -i 's/^draft=.*$/draft=on/' local/.hg/hgrc
+  $ hg init httpto
+  $ hg -R httpto serve -p $HGPORT -d --pid-file=remote.pid
+  $ cat remote.pid >> "$DAEMON_PIDS"
+  $ cd local
+  $ hg out http://localhost:$HGPORT/  --template='{rev}:{node|short}\n'
+  comparing with http://localhost:$HGPORT/
+  searching for changes
+  0:5caa672bac26
+  1:710fe444b3b0
+  $ hg push http://localhost:$HGPORT/
+  pushing to http://localhost:$HGPORT/
+  searching for changes
+  remote: adding changesets
+  remote: adding manifests
+  remote: adding file changes
+  remote: added 2 changesets with 2 changes to 1 files
+  $ "$TESTDIR/killdaemons.py"