diff --git a/mercurial/templatefilters.py b/mercurial/templatefilters.py --- a/mercurial/templatefilters.py +++ b/mercurial/templatefilters.py @@ -18,6 +18,7 @@ from . import ( node, pycompat, registrar, + smartset, templateutil, url, util, @@ -108,6 +109,9 @@ def basename(path): @templatefilter(b'cbor') def cbor(obj): """Any object. Serializes the object to CBOR bytes.""" + if isinstance(obj, smartset.abstractsmartset): + # cborutil is stricter about type than json() filter + obj = list(obj) return b''.join(cborutil.streamencode(obj)) diff --git a/mercurial/templateutil.py b/mercurial/templateutil.py --- a/mercurial/templateutil.py +++ b/mercurial/templateutil.py @@ -474,7 +474,7 @@ class revslist(wrapped): return bool(self._revs) def tovalue(self, context, mapping): - return list(self._revs) + return self._revs class _mappingsequence(wrapped):