--- a/mercurial/cmdutil.py Sun Dec 13 18:06:24 2009 +0100
+++ b/mercurial/cmdutil.py Sun Dec 13 18:06:24 2009 +0100
@@ -786,26 +786,22 @@
showlist = templatekw.showlist
+ # showparents() behaviour depends on ui trace level which
+ # causes unexpected behaviours at templating level and makes
+ # it harder to extract it in a standalone function. Its
+ # behaviour cannot be changed so leave it here for now.
def showparents(repo, ctx, templ, **args):
parents = [[('rev', p.rev()), ('node', p.hex())]
for p in self._meaningful_parentrevs(ctx)]
return showlist(templ, 'parent', parents, **args)
- def showcopies(repo, ctx, templ, **args):
- c = [{'name': x[0], 'source': x[1]} for x in copies]
- return showlist(templ, 'file_copy', c, plural='file_copies', **args)
-
- defprops = {
- 'file_copies': showcopies,
- 'parents': showparents,
- }
props = props.copy()
props.update(templatekw.keywords)
- props.update(defprops)
+ props['parents'] = showparents
props['templ'] = self.t
props['ctx'] = ctx
props['repo'] = self.repo
- props['revcache'] = {}
+ props['revcache'] = {'copies': copies}
props['cache'] = self.cache
# find correct templates for current mode
--- a/mercurial/templatekw.py Sun Dec 13 18:06:24 2009 +0100
+++ b/mercurial/templatekw.py Sun Dec 13 18:06:24 2009 +0100
@@ -141,6 +141,10 @@
def showfileadds(repo, ctx, templ, revcache, **args):
return showlist(templ, 'file_add', getfiles(repo, ctx, revcache)[1], **args)
+def showfilecopies(repo, ctx, templ, revcache, **args):
+ c = [{'name': x[0], 'source': x[1]} for x in revcache['copies']]
+ return showlist(templ, 'file_copy', c, plural='file_copies', **args)
+
def showfiledels(repo, ctx, templ, revcache, **args):
return showlist(templ, 'file_del', getfiles(repo, ctx, revcache)[2], **args)
@@ -179,6 +183,7 @@
'diffstat': showdiffstat,
'extras': showextras,
'file_adds': showfileadds,
+ 'file_copies': showfilecopies,
'file_dels': showfiledels,
'file_mods': showfilemods,
'files': showfiles,