topics: allow use a --current when setting a topic
This patch allow to use the current flag which can be used by user set existing
revs to the current topic.
--- a/hgext3rd/topic/__init__.py Mon Aug 28 17:35:44 2017 +0200
+++ b/hgext3rd/topic/__init__.py Mon Aug 28 17:16:16 2017 +0200
@@ -338,6 +338,11 @@
The active topic (if any) will be prepended with a "*".
+ The `--current` flag helps to take active topic into account. For
+ example, if you want to set the topic on all the draft changesets to the
+ active topic, you can do:
+ `hg topic -r "draft()" --current`
+
The --verbose version of this command display various information on the state of each topic."""
current = opts.get('current')
@@ -362,6 +367,8 @@
raise error.Abort(_('must have obsolete enabled to change topics'))
if clear:
topic = None
+ elif opts.get('current'):
+ topic = repo.currenttopic
elif not topic:
raise error.Abort('changing topic requires a topic name or --clear')
if any(not c.mutable() for c in repo.set('%r and public()', rev)):
--- a/tests/test-topic.t Mon Aug 28 17:35:44 2017 +0200
+++ b/tests/test-topic.t Mon Aug 28 17:16:16 2017 +0200
@@ -38,6 +38,10 @@
The active topic (if any) will be prepended with a "*".
+ The '--current' flag helps to take active topic into account. For example,
+ if you want to set the topic on all the draft changesets to the active
+ topic, you can do: 'hg topic -r "draft()" --current'
+
The --verbose version of this command display various information on the
state of each topic.
@@ -744,8 +748,10 @@
| summary: start on fran
|
- $ hg topics --rev '13::19' changewat
- switching to topic changewat
+Using the current flag
+
+ $ hg topic changewat
+ $ hg topics --rev '13::19' --current
changed topic on 2 changes
$ hg log -Gr 'draft()'