Mercurial > evolve
annotate contrib/nopushpublish.py @ 3657:b36e38e3a176
tests: add test demonstarting issue5833 is fixed
Previous patch which fixed issue5832 also fixed issue5833 as the root cause for
both was same. This patch adds test of issue5833 as well.
CHANEGLOG entry is also added for the fixed issues.
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Fri, 06 Apr 2018 20:00:43 +0530 |
parents | 4f5e915ddb71 |
children |
rev | line source |
---|---|
401 | 1 # Extension which prevent changeset to be turn public by push operation |
413
984be08ef504
nopushpublish: add license en copyright notice
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
402
diff
changeset
|
2 # |
984be08ef504
nopushpublish: add license en copyright notice
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
402
diff
changeset
|
3 # Copyright 2011 Logilab SA <contact@logilab.fr> |
984be08ef504
nopushpublish: add license en copyright notice
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
402
diff
changeset
|
4 # |
984be08ef504
nopushpublish: add license en copyright notice
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
402
diff
changeset
|
5 # This software may be used and distributed according to the terms of the |
984be08ef504
nopushpublish: add license en copyright notice
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
402
diff
changeset
|
6 # GNU General Public License version 2 or any later version. |
984be08ef504
nopushpublish: add license en copyright notice
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
402
diff
changeset
|
7 |
400 | 8 |
9 from mercurial import extensions, util | |
10 from mercurial import discovery | |
11 | |
12 def checkpublish(orig, repo, remote, outgoing, *args): | |
13 | |
14 # is remote publishing? | |
15 publish = True | |
16 if 'phases' in remote.listkeys('namespaces'): | |
17 remotephases = remote.listkeys('phases') | |
18 publish = remotephases.get('publishing', False) | |
19 | |
20 npublish = 0 | |
21 if publish: | |
22 for rev in outgoing.missing: | |
23 if repo[rev].phase(): | |
24 npublish += 1 | |
25 if npublish: | |
26 repo.ui.warn("Push would publish %s changesets" % npublish) | |
27 | |
28 ret = orig(repo, remote, outgoing, *args) | |
29 if npublish: | |
1670 | 30 raise util.Abort("Publishing push forbidden", |
400 | 31 hint="Use `hg phase -p <rev>` to manually publish them") |
32 | |
33 return ret | |
34 | |
35 def uisetup(ui): | |
36 extensions.wrapfunction(discovery, 'checkheads', checkpublish) |