topic: introduce a `hastopicext(repo)` function stable
authorPierre-Yves David <pierre-yves.david@octobus.net>
Thu, 18 Apr 2019 11:12:58 +0200
branchstable
changeset 4531 1d1f8f56daac
parent 4527 65fd9f2982b4
child 4532 659b6f548fc1
topic: introduce a `hastopicext(repo)` function This function check if a repository has the extension enabled or not.
hgext3rd/topic/__init__.py
hgext3rd/topic/common.py
--- a/hgext3rd/topic/__init__.py	Wed Apr 17 21:39:28 2019 +0200
+++ b/hgext3rd/topic/__init__.py	Thu Apr 18 11:12:58 2019 +0200
@@ -139,6 +139,7 @@
 )
 
 from . import (
+    common,
     compat,
     constants,
     destination,
@@ -257,6 +258,8 @@
 topicrev = re.compile(r'^t\d+$')
 branchrev = re.compile(r'^b\d+$')
 
+hastopicext = common.hastopicext
+
 def _namemap(repo, name):
     revs = None
     if stackrev.match(name):
@@ -368,6 +371,9 @@
 
     class topicrepo(repo.__class__):
 
+        # attribute for other code to distinct between repo with topic and repo without
+        hastopicext = True
+
         def _restrictcapabilities(self, caps):
             caps = super(topicrepo, self)._restrictcapabilities(caps)
             caps.add('topics')
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hgext3rd/topic/common.py	Thu Apr 18 11:12:58 2019 +0200
@@ -0,0 +1,8 @@
+# Copyright 2019 Pierre-Yves David <pierre-yves.david@octobus.net>
+#
+# This software may be used and distributed according to the terms of the
+# GNU General Public License version 2 or any later version.
+
+def hastopicext(repo):
+    """True if the repo use the topic extension"""
+    return getattr(repo, 'hastopicext', False)