diff -r 317382151ac3 -r de117f579431 mercurial/logcmdutil.py --- a/mercurial/logcmdutil.py Sat Mar 17 11:23:04 2018 +0900 +++ b/mercurial/logcmdutil.py Fri Mar 16 21:24:12 2018 +0900 @@ -33,7 +33,6 @@ smartset, templatekw, templater, - templateutil, util, ) from .utils import dateutil @@ -450,15 +449,13 @@ self._parts.update(m) if self._parts['docheader']: - self.ui.write( - templateutil.stringify(self.t(self._parts['docheader']))) + self.ui.write(self.t.render(self._parts['docheader'], {})) def close(self): if self._parts['docfooter']: if not self.footer: self.footer = "" - self.footer += templateutil.stringify( - self.t(self._parts['docfooter'])) + self.footer += self.t.render(self._parts['docfooter'], {}) return super(changesettemplater, self).close() def _show(self, ctx, copies, props): @@ -467,18 +464,16 @@ props['ctx'] = ctx props['index'] = index = next(self._counter) props['revcache'] = {'copies': copies} - props = pycompat.strkwargs(props) # write separator, which wouldn't work well with the header part below # since there's inherently a conflict between header (across items) and # separator (per item) if self._parts['separator'] and index > 0: - self.ui.write( - templateutil.stringify(self.t(self._parts['separator']))) + self.ui.write(self.t.render(self._parts['separator'], {})) # write header if self._parts['header']: - h = templateutil.stringify(self.t(self._parts['header'], **props)) + h = self.t.render(self._parts['header'], props) if self.buffered: self.header[ctx.rev()] = h else: @@ -488,13 +483,12 @@ # write changeset metadata, then patch if requested key = self._parts[self._tref] - self.ui.write(templateutil.stringify(self.t(key, **props))) + self.ui.write(self.t.render(key, props)) self._showpatch(ctx) if self._parts['footer']: if not self.footer: - self.footer = templateutil.stringify( - self.t(self._parts['footer'], **props)) + self.footer = self.t.render(self._parts['footer'], props) def templatespec(tmpl, mapfile): if mapfile: