patch: import topic from patch header
If the used Mercurial supports it, we import topic from patch headers.
--- 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'))
--- a/tests/test-topic.t Thu Oct 08 20:42:26 2015 -0700
+++ b/tests/test-topic.t Thu Oct 08 20:43:15 2015 -0700
@@ -157,6 +157,24 @@
file alpha
topic work
+narf!!!
+
+Import
+
+ $ hg -R pinky export > narf.diff
+ $ hg -R pinky --config extensions.strip= strip .
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ saved backup bundle to $TESTTMP/pinky/.hg/strip-backup/7c34953036d6-1ff3bae2-backup.hg (glob)
+ $ hg -R pinky import narf.diff
+ applying narf.diff
+ $ hg -R pinky log -r .
+ changeset: 6:7c34953036d6
+ tag: tip
+ topic: narf
+ parent: 4:fb147b0b417c
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: narf!
+
Now that we've pushed to brain, the work done on narf is no longer a
draft, so we won't see that topic name anymore: