mercurial/logcmdutil.py
changeset 36989 de117f579431
parent 36988 317382151ac3
child 37072 d64ae4fef471
equal deleted inserted replaced
36988:317382151ac3 36989:de117f579431
    31     revsetlang,
    31     revsetlang,
    32     scmutil,
    32     scmutil,
    33     smartset,
    33     smartset,
    34     templatekw,
    34     templatekw,
    35     templater,
    35     templater,
    36     templateutil,
       
    37     util,
    36     util,
    38 )
    37 )
    39 from .utils import dateutil
    38 from .utils import dateutil
    40 
    39 
    41 def getlimit(opts):
    40 def getlimit(opts):
   448             partnames = [p for p in self._parts.keys() if p != tmplspec.ref]
   447             partnames = [p for p in self._parts.keys() if p != tmplspec.ref]
   449             m = formatter.templatepartsmap(tmplspec, self.t, partnames)
   448             m = formatter.templatepartsmap(tmplspec, self.t, partnames)
   450             self._parts.update(m)
   449             self._parts.update(m)
   451 
   450 
   452         if self._parts['docheader']:
   451         if self._parts['docheader']:
   453             self.ui.write(
   452             self.ui.write(self.t.render(self._parts['docheader'], {}))
   454                 templateutil.stringify(self.t(self._parts['docheader'])))
       
   455 
   453 
   456     def close(self):
   454     def close(self):
   457         if self._parts['docfooter']:
   455         if self._parts['docfooter']:
   458             if not self.footer:
   456             if not self.footer:
   459                 self.footer = ""
   457                 self.footer = ""
   460             self.footer += templateutil.stringify(
   458             self.footer += self.t.render(self._parts['docfooter'], {})
   461                 self.t(self._parts['docfooter']))
       
   462         return super(changesettemplater, self).close()
   459         return super(changesettemplater, self).close()
   463 
   460 
   464     def _show(self, ctx, copies, props):
   461     def _show(self, ctx, copies, props):
   465         '''show a single changeset or file revision'''
   462         '''show a single changeset or file revision'''
   466         props = props.copy()
   463         props = props.copy()
   467         props['ctx'] = ctx
   464         props['ctx'] = ctx
   468         props['index'] = index = next(self._counter)
   465         props['index'] = index = next(self._counter)
   469         props['revcache'] = {'copies': copies}
   466         props['revcache'] = {'copies': copies}
   470         props = pycompat.strkwargs(props)
       
   471 
   467 
   472         # write separator, which wouldn't work well with the header part below
   468         # write separator, which wouldn't work well with the header part below
   473         # since there's inherently a conflict between header (across items) and
   469         # since there's inherently a conflict between header (across items) and
   474         # separator (per item)
   470         # separator (per item)
   475         if self._parts['separator'] and index > 0:
   471         if self._parts['separator'] and index > 0:
   476             self.ui.write(
   472             self.ui.write(self.t.render(self._parts['separator'], {}))
   477                 templateutil.stringify(self.t(self._parts['separator'])))
       
   478 
   473 
   479         # write header
   474         # write header
   480         if self._parts['header']:
   475         if self._parts['header']:
   481             h = templateutil.stringify(self.t(self._parts['header'], **props))
   476             h = self.t.render(self._parts['header'], props)
   482             if self.buffered:
   477             if self.buffered:
   483                 self.header[ctx.rev()] = h
   478                 self.header[ctx.rev()] = h
   484             else:
   479             else:
   485                 if self.lastheader != h:
   480                 if self.lastheader != h:
   486                     self.lastheader = h
   481                     self.lastheader = h
   487                     self.ui.write(h)
   482                     self.ui.write(h)
   488 
   483 
   489         # write changeset metadata, then patch if requested
   484         # write changeset metadata, then patch if requested
   490         key = self._parts[self._tref]
   485         key = self._parts[self._tref]
   491         self.ui.write(templateutil.stringify(self.t(key, **props)))
   486         self.ui.write(self.t.render(key, props))
   492         self._showpatch(ctx)
   487         self._showpatch(ctx)
   493 
   488 
   494         if self._parts['footer']:
   489         if self._parts['footer']:
   495             if not self.footer:
   490             if not self.footer:
   496                 self.footer = templateutil.stringify(
   491                 self.footer = self.t.render(self._parts['footer'], props)
   497                     self.t(self._parts['footer'], **props))
       
   498 
   492 
   499 def templatespec(tmpl, mapfile):
   493 def templatespec(tmpl, mapfile):
   500     if mapfile:
   494     if mapfile:
   501         return formatter.templatespec('changeset', tmpl, mapfile)
   495         return formatter.templatespec('changeset', tmpl, mapfile)
   502     else:
   496     else: