nopushpublish.py
changeset 402 8ef1096ee5ab
parent 401 76df267fd76c
child 403 c2ef47fce3f9
--- 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)