stack: prevent crash when topic is rooted on nullid
authorPierre-Yves David <pierre-yves.david@fb.com>
Mon, 04 Apr 2016 00:28:03 -0700
changeset 1961 d9c7fced94fc
parent 1960 a9a1abc7dd75
child 1962 c00815786813
stack: prevent crash when topic is rooted on nullid We exclude null from displayed base. This was causing a crash when trying to display its description (we'll still have to handle the empty description case, but it is now less urgent).
hgext3rd/topic/stack.py
tests/test-topic-stack.t
--- a/hgext3rd/topic/stack.py	Mon Apr 04 00:22:20 2016 -0700
+++ b/hgext3rd/topic/stack.py	Mon Apr 04 00:28:03 2016 -0700
@@ -6,6 +6,7 @@
 from mercurial.i18n import _
 from mercurial import (
     error,
+    node,
     obsolete,
 )
 
@@ -27,7 +28,7 @@
         p1 = ctx.p1()
         if p1.obsolete():
             p1 = repo[_singlesuccessor(repo, p1)]
-        if p1.rev() != prev:
+        if p1.rev() != prev and p1.node() != node.nullid:
             entries.append((None, p1))
         entries.append((idx, ctx))
         prev = r
--- a/tests/test-topic-stack.t	Mon Apr 04 00:22:20 2016 -0700
+++ b/tests/test-topic-stack.t	Mon Apr 04 00:28:03 2016 -0700
@@ -46,7 +46,19 @@
   o  0 default {other} draft c_a
   
 
+Check that topic without any parent does not crash --list
+---------------------------------------------------------
+
+  $ hg up other
+  switching to topic other
+  0 files updated, 0 files merged, 4 files removed, 0 files unresolved
+  $ hg topic --list
+  t2@ c_b (current)
+  t1: c_a
   $ hg phase --public 'topic("other")'
+  $ hg up foo
+  switching to topic foo
+  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 Simple test
 -----------