diff -r 8857e150bec0 -r e34f4d1f0dbb mercurial/phases.py --- a/mercurial/phases.py Wed Dec 21 23:47:18 2011 +0100 +++ b/mercurial/phases.py Tue Dec 20 01:34:12 2011 +0100 @@ -34,6 +34,7 @@ immutable shared public: X X draft: X + secret: local commits are draft by default @@ -50,6 +51,8 @@ * pull never changes server states * publish and old server csets are seen as public by client +* Any secret changeset seens in another repository is lowered to at least draft + Here is the final table summing up the 49 possible usecase of phase exchange: