branching: merge 9.3.1 release into default
authorPierre-Yves David <pierre-yves.david@octobus.net>
Wed, 08 Apr 2020 16:16:09 +0200
changeset 5288 5cfec61b872b
parent 5276 8431bb224862 (current diff)
parent 5287 0cb07fb5d158 (diff)
child 5293 4da1d21231ae
branching: merge 9.3.1 release into default
CHANGELOG
hgext3rd/evolve/metadata.py
hgext3rd/evolve/safeguard.py
hgext3rd/topic/__init__.py
--- 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)