changeset 2086:71410fa2c253

stack: extra argument validation logic outside of showstack It seems sensible keep the 'showstack' function purely about actually displaying and existing stack.
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
date Fri, 26 Aug 2016 12:37:52 +0200
parents cf9414f2b5cd
children ba79d23594d6
files hgext3rd/topic/__init__.py hgext3rd/topic/stack.py
diffstat 2 files changed, 8 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/hgext3rd/topic/__init__.py
+++ b/hgext3rd/topic/__init__.py
@@ -196,6 +196,10 @@
     if list:
         if clear or change:
             raise error.Abort(_("cannot use --clear or --change with --list"))
+        if not topic:
+            topic = repo.currenttopic
+        if not topic:
+            raise error.Abort(_('no active topic to list'))
         return stack.showstack(ui, repo, topic, opts)
 
     if change:
@@ -275,6 +279,10 @@
     """list all changesets in a topic
 
     List the current topic by default."""
+    if not topic:
+        topic = repo.currenttopic
+    if not topic:
+        raise error.Abort(_('no active topic to list'))
     return stack.showstack(ui, repo, topic, opts)
 
 def _listtopics(ui, repo, opts):
--- a/hgext3rd/topic/stack.py
+++ b/hgext3rd/topic/stack.py
@@ -2,7 +2,6 @@
 #
 # This software may be used and distributed according to the terms of the
 # GNU General Public License version 2 or any later version.
-from mercurial.i18n import _
 from mercurial import (
     destutil,
     error,
@@ -16,10 +15,6 @@
     return _orderrevs(repo, trevs)
 
 def showstack(ui, repo, topic, opts):
-    if not topic:
-        topic = repo.currenttopic
-    if not topic:
-        raise error.Abort(_('no active topic to list'))
     fm = ui.formatter('topicstack', opts)
     prev = None
     entries = []