topics: show changesetcount, troubledcount and headscount by default
authorPulkit Goyal <7895pulkit@gmail.com>
Fri, 13 Oct 2017 10:18:52 +0530
changeset 3060 f43a310c4338
parent 3059 02b220984b01
child 3062 0cd594fdfd75
topics: show changesetcount, troubledcount and headscount by default
hgext3rd/topic/__init__.py
tests/test-split.t
tests/test-topic-change.t
tests/test-topic-dest.t
tests/test-topic-shelve.t
tests/test-topic-stack-data.t
tests/test-topic-stack.t
tests/test-topic-tutorial.t
tests/test-topic.t
--- a/hgext3rd/topic/__init__.py	Fri Oct 13 10:01:38 2017 +0530
+++ b/hgext3rd/topic/__init__.py	Fri Oct 13 10:18:52 2017 +0530
@@ -762,7 +762,7 @@
         return _showlasttouched(repo, fm, opts)
     activetopic = repo.currenttopic
     namemask = '%s'
-    if repo.topics and ui.verbose:
+    if repo.topics:
         maxwidth = max(len(t) for t in repo.topics)
         namemask = '%%-%is' % maxwidth
     for topic in sorted(repo.topics):
@@ -778,31 +778,33 @@
             fm.plain(' %s ' % marker, label=label)
         fm.write('topic', namemask, topic, label=label)
         fm.data(active=active)
+
+        data = stack.stack(repo, topic=topic)
+        fm.plain(' (')
         if ui.verbose:
-            # XXX we should include the data even when not verbose
-            data = stack.stack(repo, topic=topic)
-
-            fm.plain(' (')
             fm.write('branches+', 'on branch: %s',
                      '+'.join(data.branches), # XXX use list directly after 4.0 is released
                      label='topic.list.branches')
 
             fm.plain(', ')
-            fm.write('changesetcount', '%d changesets', data.changesetcount,
-                     label='topic.list.changesetcount')
+        fm.write('changesetcount', '%d changesets', data.changesetcount,
+                 label='topic.list.changesetcount')
+
+        if data.troubledcount:
+            fm.plain(', ')
+            fm.write('troubledcount', '%d troubled',
+                     data.troubledcount,
+                     label='topic.list.troubledcount')
 
-            if data.troubledcount:
-                fm.plain(', ')
-                fm.write('troubledcount', '%d troubled',
-                         data.troubledcount,
-                         label='topic.list.troubledcount')
+        headcount = len(data.heads)
+        if 1 < headcount:
+            fm.plain(', ')
+            fm.write('headcount', '%d heads',
+                     headcount,
+                     label='topic.list.headcount.multiple')
 
-            headcount = len(data.heads)
-            if 1 < headcount:
-                fm.plain(', ')
-                fm.write('headcount', '%d heads',
-                         headcount,
-                         label='topic.list.headcount.multiple')
+        if ui.verbose:
+            # XXX we should include the data even when not verbose
 
             behindcount = data.behindcount
             if 0 < behindcount:
@@ -815,8 +817,7 @@
                 fm.write('behinderror', '%s',
                          _('ambiguous destination: %s') % data.behinderror,
                          label='topic.list.behinderror')
-            fm.plain(')')
-        fm.plain('\n')
+        fm.plain(')\n')
     fm.end()
 
 def _showlasttouched(repo, fm, opts):
--- a/tests/test-split.t	Fri Oct 13 10:01:38 2017 +0530
+++ b/tests/test-split.t	Fri Oct 13 10:18:52 2017 +0530
@@ -485,4 +485,4 @@
   summary:     split8
   
   $ hg topic
-   * mytopic
+   * mytopic (2 changesets)
--- a/tests/test-topic-change.t	Fri Oct 13 10:01:38 2017 +0530
+++ b/tests/test-topic-change.t	Fri Oct 13 10:18:52 2017 +0530
@@ -92,10 +92,10 @@
 Clearing the active topic using --clear
 
   $ hg topic
-   * foo
+   * foo (8 changesets)
   $ hg topic --clear
   $ hg topic
-     foo
+     foo (8 changesets)
 Changing topics on some revisions (also testing issue 5441)
 
   $ hg topic -r 12:: bar
--- a/tests/test-topic-dest.t	Fri Oct 13 10:01:38 2017 +0530
+++ b/tests/test-topic-dest.t	Fri Oct 13 10:18:52 2017 +0530
@@ -234,12 +234,12 @@
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)
   $ hg topic
-     elephant
-   * monkey
+     elephant (1 changesets)
+   * monkey   (2 changesets)
   $ hg ci -m 'merge with default'
   $ hg topic
-     elephant
-   * monkey
+     elephant (1 changesets)
+   * monkey   (3 changesets)
   $ hg log -G
   @    13 (monkey) merge with default
   |\
--- a/tests/test-topic-shelve.t	Fri Oct 13 10:01:38 2017 +0530
+++ b/tests/test-topic-shelve.t	Fri Oct 13 10:18:52 2017 +0530
@@ -15,12 +15,12 @@
   $ hg topic "testing-shelve"
   marked working directory as topic: testing-shelve
   $ hg topic
-   * testing-shelve
+   * testing-shelve (0 changesets)
   $ hg ci -m "First commit" -A
   adding a
   active topic 'testing-shelve' grew its first changeset
   $ hg topic
-   * testing-shelve
+   * testing-shelve (1 changesets)
   $ echo " World" >> a
   $ hg stack
   ### topic: testing-shelve
@@ -34,7 +34,7 @@
   shelved as default
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg topic
-   * testing-shelve
+   * testing-shelve (1 changesets)
   $ hg stack
   ### topic: testing-shelve
   ### target: default (branch)
@@ -45,7 +45,7 @@
   $ hg unshelve
   unshelving change 'default'
   $ hg topic
-   * testing-shelve
+   * testing-shelve (1 changesets)
   $ hg stack
   ### topic: testing-shelve
   ### target: default (branch)
--- a/tests/test-topic-stack-data.t	Fri Oct 13 10:01:38 2017 +0530
+++ b/tests/test-topic-stack-data.t	Fri Oct 13 10:18:52 2017 +0530
@@ -165,18 +165,18 @@
 basic output
 
   $ hg topic
-     bar
-     baz
-   * foo
-     fuz
+     bar (5 changesets, 1 troubled, 2 heads)
+     baz (2 changesets)
+   * foo (2 changesets)
+     fuz (3 changesets, 2 troubled)
 
 quiet version
 
   $ hg topic --quiet
-  bar
-  baz
-  foo
-  fuz
+  bar (5 changesets, 1 troubled, 2 heads)
+  baz (2 changesets)
+  foo (2 changesets)
+  fuz (3 changesets, 2 troubled)
 
 verbose
 
@@ -192,19 +192,26 @@
   [
    {
     "active": false,
-    "topic": "bar"
+    "changesetcount": 5,
+    "headcount": 2,
+    "topic": "bar",
+    "troubledcount": 1
    },
    {
     "active": false,
+    "changesetcount": 2,
     "topic": "baz"
    },
    {
     "active": true,
+    "changesetcount": 2,
     "topic": "foo"
    },
    {
     "active": false,
-    "topic": "fuz"
+    "changesetcount": 3,
+    "topic": "fuz",
+    "troubledcount": 2
    }
   ]
 
--- a/tests/test-topic-stack.t	Fri Oct 13 10:01:38 2017 +0530
+++ b/tests/test-topic-stack.t	Fri Oct 13 10:18:52 2017 +0530
@@ -66,8 +66,8 @@
 After changing the phase of all the changesets in "other" to public, the topic should still be active, but is empty. We should be better at informating the user about it and displaying good data in this case.
 
   $ hg topic
-     foo
-   * other
+     foo   (4 changesets)
+   * other (0 changesets)
   $ hg stack
   ### topic: other
   ### target: default (branch)
@@ -84,7 +84,7 @@
 'hg stack' list all changeset in the topic
 
   $ hg topic
-   * foo
+   * foo (4 changesets)
   $ hg stack
   ### topic: foo
   ### target: default (branch)
@@ -206,7 +206,7 @@
 check that topics and stack are available even if ui.strict=true
 
   $ hg topics
-   * foo
+   * foo (4 changesets)
   $ hg stack
   ### topic: foo
   ### target: default (branch)
@@ -216,7 +216,7 @@
   t1: c_c
   t0^ c_b (base)
   $ hg topics --config ui.strict=true
-   * foo
+   * foo (4 changesets)
   $ hg stack --config ui.strict=true
   ### topic: foo
   ### target: default (branch)
--- a/tests/test-topic-tutorial.t	Fri Oct 13 10:01:38 2017 +0530
+++ b/tests/test-topic-tutorial.t	Fri Oct 13 10:18:52 2017 +0530
@@ -101,7 +101,7 @@
 changeset yet:
 
   $ hg topics
-   * food
+   * food (0 changesets)
 
   $ hg summary
   parent: 0:38da43f0a2ea tip
@@ -259,7 +259,7 @@
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
   $ hg topics
-     food
+     food (2 changesets)
 
 Note that ``default`` (name of the branch) now refers to the tipmost
 changeset of default without a topic:
@@ -336,7 +336,7 @@
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
   $ hg topics
-   * food
+   * food (2 changesets)
 
 Updating to any changeset that is part of a topic activates the topic
 regardless of how the revision was specified:
@@ -349,7 +349,7 @@
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
   $ hg topics
-   * food
+   * food (2 changesets)
 
 .. Server side activity:
 
@@ -575,7 +575,7 @@
 The topic information will disappear when we publish the changesets:
 
   $ hg topics
-   * food
+   * food (2 changesets)
 
   $ hg push
   pushing to $TESTTMP/server (glob)
@@ -588,7 +588,7 @@
   active topic 'food' is now empty
 
   $ hg topics
-   * food
+   * food (0 changesets)
 
 The topic still exists, and any new commit will be in the topic. But
 note that it is now devoid of any commit.
@@ -764,8 +764,8 @@
 We now have two topics:
 
   $ hg topics
-   * drinks
-     tools
+   * drinks (2 changesets)
+     tools  (3 changesets)
 
 The information displayed by ``hg stack`` adapts to the active topic:
 
--- a/tests/test-topic.t	Fri Oct 13 10:01:38 2017 +0530
+++ b/tests/test-topic.t	Fri Oct 13 10:18:52 2017 +0530
@@ -132,13 +132,13 @@
   [255]
   $ hg revert alpha
   $ hg topic
-   * topicflag
+   * topicflag (0 changesets)
 
 Make a topic
 
   $ hg topic narf
   $ hg topics
-   * narf
+   * narf (0 changesets)
   $ hg topics -v
    * narf (on branch: default, 0 changesets)
   $ hg stack
@@ -157,8 +157,8 @@
   $ hg topic fran
   marked working directory as topic: fran
   $ hg topics
-   * fran
-     narf
+   * fran (0 changesets)
+     narf (1 changesets)
   $ hg topics --current
   fran
   $ echo >> fran work >> beta
@@ -168,8 +168,8 @@
   switching to topic narf
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg topic
-     fran
-   * narf
+     fran (1 changesets)
+   * narf (1 changesets)
   $ hg log -r . -T '{topics}\n'
   narf
   $ echo 'narf!!!' >> alpha
@@ -373,7 +373,7 @@
   |
 
   $ hg topics
-   * query
+   * query (1 changesets)
   $ cd ../pinky
   $ hg co query
   switching to topic query
@@ -392,9 +392,9 @@
   $ hg topic narf
   $ hg ci -m 'Finish narf'
   $ hg topics
-     fran
-   * narf
-     query
+     fran  (1 changesets)
+   * narf  (2 changesets)
+     query (2 changesets)
   $ hg debugnamecomplete # branch:topic here is a buggy side effect
   default
   default:fran
@@ -411,8 +411,8 @@
 narf commits public:
 
   $ hg topics
-     fran
-   * narf
+     fran (1 changesets)
+   * narf (0 changesets)
   $ hg log -Gl 6
   @    changeset:   9:ae074045b7a7
   |\   tag:         tip
@@ -454,7 +454,7 @@
 
   $ cd ../brain
   $ hg topics
-   * query
+   * query (1 changesets)
   $ hg pull ../pinky -r narf
   pulling from ../pinky
   abort: unknown revision 'narf'!
@@ -469,7 +469,7 @@
   active topic 'query' is now empty
   (run 'hg update' to get a working copy)
   $ hg topics
-   * query
+   * query (0 changesets)
 
 We can pull in the draft-phase change and we get the new topic
 
@@ -482,8 +482,8 @@
   added 1 changesets with 1 changes to 1 files (+1 heads)
   (run 'hg heads' to see heads)
   $ hg topics
-     fran
-   * query
+     fran  (1 changesets)
+   * query (0 changesets)
   $ hg log -Gr 'draft()'
   o  changeset:   9:0469d521db49
   |  tag:         tip
@@ -500,7 +500,7 @@
   $ hg topics --clear
   clearing empty topic "query"
   $ hg topics
-     fran
+     fran (1 changesets)
 
 Topic revset
   $ hg log -r 'topic()' -G
@@ -587,7 +587,7 @@
 
 Match current topic:
   $ hg topic
-     fran
+     fran (1 changesets)
   $ hg log -r 'topic(.)'
 (no output is expected)
   $ hg co fran
@@ -605,7 +605,7 @@
 
 Deactivate the topic.
   $ hg topics
-   * fran
+   * fran (1 changesets)
   $ hg topics --clear
   $ echo fran? >> beta
   $ hg ci -m 'fran?'
@@ -626,7 +626,7 @@
   |
 
   $ hg topics
-     fran
+     fran (1 changesets)
 
 Testing for updating to t0
 ==========================
@@ -645,7 +645,7 @@
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
   $ hg topic
-   * fran
+   * fran (1 changesets)
   $ hg stack
   ### topic: fran
   ### target: default (branch), ambigious rebase destination - branch 'default' has 2 heads
@@ -730,9 +730,9 @@
      summary:     added a
   
   $ hg topics
-     topic1970
-     topic1990
-   * topic2010
+     topic1970 (1 changesets)
+     topic1990 (1 changesets)
+   * topic2010 (1 changesets)
 
   $ hg topics --age
    * topic2010 (2010-01-01 by bar)