patch: import topic from patch header
authorPierre-Yves David <pierre-yves.david@fb.com>
Thu, 08 Oct 2015 20:43:15 -0700
changeset 1867 c9cacc62fa17
parent 1866 13fc93fb7fbe
child 1868 5cdd5e0a421c
patch: import topic from patch header If the used Mercurial supports it, we import topic from patch headers.
src/topic/__init__.py
tests/test-topic.t
--- 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: