--- a/nopushpublish.py Mon Jul 30 14:42:02 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-# Extension which prevent changeset to be turn public by push operation
-
-from mercurial import extensions, util
-from mercurial import discovery
-
-def checkpublish(orig, repo, remote, outgoing, *args):
-
- # is remote publishing?
- publish = True
- if 'phases' in remote.listkeys('namespaces'):
- remotephases = remote.listkeys('phases')
- publish = remotephases.get('publishing', False)
-
- npublish = 0
- if publish:
- for rev in outgoing.missing:
- if repo[rev].phase():
- npublish += 1
- if npublish:
- repo.ui.warn("Push would publish %s changesets" % npublish)
-
- ret = orig(repo, remote, outgoing, *args)
- if npublish:
- raise util.Abort("Publishing push forbiden",
- hint="Use `hg phase -p <rev>` to manually publish them")
-
- return ret
-
-def uisetup(ui):
- extensions.wrapfunction(discovery, 'checkheads', checkpublish)