--- /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"