diff hgext3rd/topic/__init__.py @ 6539:45689da4ed41

topic: teach hg import/export to handle topic namespace as well Importing topic currently doesn't work, but will hopefully be fixed soon.
author Anton Shestakov <av6@dwimlabs.net>
date Fri, 14 Jul 2023 15:54:51 -0300
parents 80d5d4e587f7
children 09fb1cfb5adc
line wrap: on
line diff
--- a/hgext3rd/topic/__init__.py	Mon Jul 10 16:13:45 2023 -0300
+++ b/hgext3rd/topic/__init__.py	Fri Jul 14 15:54:51 2023 -0300
@@ -1681,22 +1681,37 @@
 
 ## preserve topic during import/export
 
+def _exporttns(seq, ctx):
+    tns = ctx.topic_namespace()
+    if tns != b'none':
+        return b'EXP-Topic-Namespace %s' % tns
+    return None
+
 def _exporttopic(seq, ctx):
     topic = ctx.topic()
     if topic:
         return b'EXP-Topic %s' % topic
     return None
 
+def _importtns(repo, patchdata, extra, opts):
+    if b'topic-namespace' in patchdata:
+        extra[b'topic-namespace'] = patchdata[b'topic-namespace']
+
 def _importtopic(repo, patchdata, extra, opts):
     if b'topic' in patchdata:
         extra[b'topic'] = patchdata[b'topic']
 
 def setupimportexport(ui):
     """run at ui setup time to install import/export logic"""
+    cmdutil.extraexport.append(b'topic-namespace')
+    cmdutil.extraexportmap[b'topic-namespace'] = _exporttns
     cmdutil.extraexport.append(b'topic')
     cmdutil.extraexportmap[b'topic'] = _exporttopic
+    cmdutil.extrapreimport.append(b'topic-namespace')
+    cmdutil.extrapreimportmap[b'topic-namespace'] = _importtns
     cmdutil.extrapreimport.append(b'topic')
     cmdutil.extrapreimportmap[b'topic'] = _importtopic
+    patch.patchheadermap.append((b'EXP-Topic-Namespace', b'topic-namespace'))
     patch.patchheadermap.append((b'EXP-Topic', b'topic'))
 
 ## preserve topic during split