Add "private" concept (2). private changeset are hiden suppose to be hidden for
pull and push. For now it works for out and push
$ cat >> $HGRCPATH <<EOF
> [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: 0
0:5caa672bac26: 0
$ 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 0 1 # until we fix push
$ echo "cornelius" >> babar
$ hg ci -m "great old one"
$ echo "flore" >> babar
$ hg ci -m "children"
$ hg log --template='{rev}:{node|short}: {state}\n'
3:3f5e297fd1c6: 0
2:dc0a5281e2d9: 0
1:710fe444b3b0: 0
0:5caa672bac26: 0
$ cat >> $HGRCPATH <<EOF
> [states]
> private=yes
> EOF
$ hg log --template='{rev}:{node|short}: {state}\n'
3:3f5e297fd1c6: 2
2:dc0a5281e2d9: 2
1:710fe444b3b0: 0
0:5caa672bac26: 0
$ 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