hgext3rd/topic/__init__.py
changeset 2982 fef934b7ed86
parent 2939 7759d040d48d
child 2983 c0de0010ec30
--- a/hgext3rd/topic/__init__.py	Fri Sep 22 12:48:57 2017 +0200
+++ b/hgext3rd/topic/__init__.py	Fri Sep 22 13:43:38 2017 +0200
@@ -198,6 +198,10 @@
     entry[1].append(('t', 'topic', '',
                      _("use specified topic"), _('TOPIC')))
 
+    entry = extensions.wrapcommand(commands.table, 'push', pushwrap)
+    entry[1].append(('t', 'topic', '',
+                     _("topic to push"), _('TOPIC')))
+
     extensions.wrapfunction(cmdutil, 'buildcommittext', committextwrap)
     extensions.wrapfunction(merge, 'update', mergeupdatewrap)
     # We need to check whether t0 or b0 is passed to override the default update
@@ -824,6 +828,12 @@
                           "\nHG: topic '%s'\nHG: branch" % t)
     return ret
 
+def pushwrap(orig, ui, repo, *args, **opts):
+    if opts.get('topic'):
+        topicrevs = repo.revs('topic(%s) - obsolete()', opts['topic'])
+        opts.setdefault('rev', []).extend(topicrevs)
+    return orig(ui, repo, *args, **opts)
+
 def mergeupdatewrap(orig, repo, node, branchmerge, force, *args, **kwargs):
     matcher = kwargs.get('matcher')
     partial = not (matcher is None or matcher.always())