children: don't pass filectx to displayer
authorYuya Nishihara <yuya@tcha.org>
Thu, 26 Mar 2015 23:56:18 +0900
changeset 24482 3eb9045396b0
parent 24481 dded1eeeff64
child 24483 870d2eb82f6d
children: don't pass filectx to displayer displayer doesn't want a fctx but a ctx. It failed with -Tdefault template. Traceback (most recent call last): ... File "mercurial/templatekw.py", line 212, in showbookmarks bookmarks = args['ctx'].bookmarks() AttributeError: 'filectx' object has no attribute 'bookmarks'
hgext/children.py
tests/test-children.t
--- a/hgext/children.py	Fri Mar 27 15:13:21 2015 -0500
+++ b/hgext/children.py	Thu Mar 26 23:56:18 2015 +0900
@@ -39,11 +39,13 @@
     """
     rev = opts.get('rev')
     if file_:
-        ctx = repo.filectx(file_, changeid=rev)
+        fctx = repo.filectx(file_, changeid=rev)
+        childctxs = [fcctx.changectx() for fcctx in fctx.children()]
     else:
         ctx = repo[rev]
+        childctxs = ctx.children()
 
     displayer = cmdutil.show_changeset(ui, repo, opts)
-    for cctx in ctx.children():
+    for cctx in childctxs:
         displayer.show(cctx)
     displayer.close()
--- a/tests/test-children.t	Fri Mar 27 15:13:21 2015 -0500
+++ b/tests/test-children.t	Thu Mar 26 23:56:18 2015 +0900
@@ -122,4 +122,12 @@
   summary:     2
   
 
+should be compatible with templater (don't pass fctx to displayer)
+  $ hg children file0 -Tdefault
+  changeset:   2:8f5eea5023c2
+  user:        test
+  date:        Thu Jan 01 00:00:02 1970 +0000
+  summary:     2
+  
+
   $ cd ..