--- a/.hgtags Tue Apr 07 19:33:40 2020 +0200
+++ b/.hgtags Wed Apr 08 16:16:09 2020 +0200
@@ -85,3 +85,4 @@
d989bab720e5f7638a9e58fda76cf3f4b40d0611 9.2.1
ef41094c34e162eb32ef24bf66d9776d1112751a 9.2.2
583dc6ef3eb21fbf6574021136f32b8a1163506c 9.3.0
+8d955635cf457aaa4810d77740721d4275001f74 9.3.1
--- a/CHANGELOG Tue Apr 07 19:33:40 2020 +0200
+++ b/CHANGELOG Wed Apr 08 16:16:09 2020 +0200
@@ -6,17 +6,24 @@
* compat: clean up old compatibility code
-9.3.1 - in progress
+9.3.1 -- 2020-04-08
-------------------
+ * compat: make __touch-noise__ and __rewind-hash__ extra field be bytes
+
* obsexchange: avoid sending too large request to http server
* obsdiscovery: server no longer aborts with a 500 error if client sends a
request without obscommon
+ * obsdiscovery: avoid considering locally hidden changeset
+ * single-heads: ignore obsolete section when enforcing one head per branch
+
* evolve: improved behavior when evolving above the result of a split
- * topic: fix auto-publish=abort with server that auto-publishes bare branches
* evolve: checking for new head on push is no longer confused by mixed
- branches(or topics)
- * single-heads: ignore obsolete section when enforcing one head per branch
+ branches (or topics)
+
+topic (0.18.1)
+
+ * topic: fix auto-publish=abort with server that auto-publishes bare branches
9.3.0 -- 2020-03-04
-------------------
--- a/debian/changelog Tue Apr 07 19:33:40 2020 +0200
+++ b/debian/changelog Wed Apr 08 16:16:09 2020 +0200
@@ -1,3 +1,9 @@
+mercurial-evolve (9.3.1-1) unstable; urgency=medium
+
+ * new upstream release
+
+ -- Anton Shestakov <av6@dwimlabs.net> Wed, 08 Apr 2020 21:04:59 +0800
+
mercurial-evolve (9.3.0-1) unstable; urgency=medium
* new upstream release
--- a/hgext3rd/evolve/safeguard.py Tue Apr 07 19:33:40 2020 +0200
+++ b/hgext3rd/evolve/safeguard.py Wed Apr 08 16:16:09 2020 +0200
@@ -24,6 +24,30 @@
eh.configitem(b'experimental', b'auto-publish', b'publish')
+ def _checkpublish(pushop):
+ repo = pushop.repo
+ ui = repo.ui
+ behavior = ui.config(b'experimental', b'auto-publish')
+ nocheck = behavior not in (b'warn', b'abort')
+ if nocheck or getattr(pushop, 'publish', False):
+ return
+ remotephases = pushop.remote.listkeys(b'phases')
+ publishing = remotephases.get(b'publishing', False)
+ if publishing:
+ if pushop.revs is None:
+ published = repo.filtered(b'served').revs(b"not public()")
+ else:
+ published = repo.revs(b"::%ln - public()", pushop.revs)
+ if published:
+ if behavior == b'warn':
+ ui.warn(_(b'%i changesets about to be published\n')
+ % len(published))
+ elif behavior == b'abort':
+ msg = _(b'push would publish 1 changesets')
+ hint = _(b"behavior controlled by "
+ b"'experimental.auto-publish' config")
+ raise error.Abort(msg, hint=hint)
+
@eh.reposetup
def setuppublishprevention(ui, repo):
@@ -31,25 +55,6 @@
def checkpush(self, pushop):
super(noautopublishrepo, self).checkpush(pushop)
- behavior = self.ui.config(b'experimental', b'auto-publish')
- nocheck = behavior not in (b'warn', b'abort')
- if nocheck or getattr(pushop, 'publish', False):
- return
- remotephases = pushop.remote.listkeys(b'phases')
- publishing = remotephases.get(b'publishing', False)
- if publishing:
- if pushop.revs is None:
- published = self.filtered(b'served').revs(b"not public()")
- else:
- published = self.revs(b"::%ln - public()", pushop.revs)
- if published:
- if behavior == b'warn':
- self.ui.warn(_(b'%i changesets about to be published\n')
- % len(published))
- elif behavior == b'abort':
- msg = _(b'push would publish 1 changesets')
- hint = _(b"behavior controlled by "
- b"'experimental.auto-publish' config")
- raise error.Abort(msg, hint=hint)
+ _checkpublish(pushop)
repo.__class__ = noautopublishrepo
--- a/hgext3rd/topic/__init__.py Tue Apr 07 19:33:40 2020 +0200
+++ b/hgext3rd/topic/__init__.py Wed Apr 08 16:16:09 2020 +0200
@@ -374,7 +374,17 @@
# Wrap changelog.add to drop empty topic
extensions.wrapfunction(changelog.changelog, 'add', wrapadd)
# Make exchange._checkpublish handle experimental.topic.publish-bare-branch
- extensions.wrapfunction(exchange, '_checkpublish', flow.replacecheckpublish)
+ if util.safehasattr(exchange, '_checkpublish'):
+ extensions.wrapfunction(exchange, '_checkpublish',
+ flow.replacecheckpublish)
+ else:
+ # hg <= 4.8 (33d30fb1e4ae)
+ try:
+ evolve = extensions.find(b'evolve')
+ extensions.wrapfunction(evolve.safeguard, '_checkpublish',
+ flow.replacecheckpublish)
+ except (KeyError, AttributeError):
+ pass
server.setupserver(ui)