diff src/topic/__init__.py @ 1867:c9cacc62fa17

patch: import topic from patch header If the used Mercurial supports it, we import topic from patch headers.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Thu, 08 Oct 2015 20:43:15 -0700
parents 13fc93fb7fbe
children 58ef5699fb35
line wrap: on
line diff
--- a/src/topic/__init__.py	Thu Oct 08 20:42:26 2015 -0700
+++ b/src/topic/__init__.py	Thu Oct 08 20:43:15 2015 -0700
@@ -22,6 +22,7 @@
 from mercurial import merge
 from mercurial import namespaces
 from mercurial import obsolete
+from mercurial import patch
 from mercurial import phases
 from mercurial import util
 
@@ -219,6 +220,10 @@
         return 'EXP-Topic %s'  % topic
     return None
 
+def _importtopic(repo, patchdata, extra, opts):
+    if 'topic' in patchdata:
+        extra['topic'] = patchdata['topic']
+
 extensions.afterloaded('rebase', _fixrebase)
 
 entry = extensions.wrapcommand(commands.table, 'commit', commitwrap)
@@ -233,3 +238,8 @@
 if util.safehasattr(cmdutil, 'extraexport'):
     cmdutil.extraexport.append('topic')
     cmdutil.extraexportmap['topic'] = _exporttopic
+if util.safehasattr(cmdutil, 'extrapreimport'):
+    cmdutil.extrapreimport.append('topic')
+    cmdutil.extrapreimportmap['topic'] = _importtopic
+if util.safehasattr(patch, 'patchheadermap'):
+    patch.patchheadermap.append(('EXP-Topic', 'topic'))