mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 15:27:13 +03:00
templater: add new docheader/footer components for XML (issue4135)
The existing header/footer components were templated per-changeset, and thus couldn't be correctly printed for an empty log
This commit is contained in:
parent
0dd6c0c729
commit
5b498724ca
@ -1422,7 +1422,8 @@ class changeset_templater(changeset_printer):
|
||||
(self.ui.debugflag, 'debug'),
|
||||
]
|
||||
|
||||
self._parts = {'header': '', 'footer': '', 'changeset': 'changeset'}
|
||||
self._parts = {'header': '', 'footer': '', 'changeset': 'changeset',
|
||||
'docheader': '', 'docfooter': ''}
|
||||
for mode, postfix in tmplmodes:
|
||||
for t in self._parts:
|
||||
cur = t
|
||||
@ -1431,6 +1432,16 @@ class changeset_templater(changeset_printer):
|
||||
if mode and cur in self.t:
|
||||
self._parts[t] = cur
|
||||
|
||||
if self._parts['docheader']:
|
||||
self.ui.write(templater.stringify(self.t(self._parts['docheader'])))
|
||||
|
||||
def close(self):
|
||||
if self._parts['docfooter']:
|
||||
if not self.footer:
|
||||
self.footer = ""
|
||||
self.footer += templater.stringify(self.t(self._parts['docfooter']))
|
||||
return super(changeset_templater, self).close()
|
||||
|
||||
def _show(self, ctx, copies, matchfn, props):
|
||||
'''show a single changeset or file revision'''
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
header = '<?xml version="1.0"?>\n<log>\n'
|
||||
footer = '</log>\n'
|
||||
docheader = '<?xml version="1.0"?>\n<log>\n'
|
||||
docfooter = '</log>\n'
|
||||
|
||||
changeset = '<logentry revision="{rev}" node="{node}">\n{branches}{bookmarks}{tags}{parents}<author email="{author|email|xmlescape}">{author|person|xmlescape}</author>\n<date>{date|rfc3339date}</date>\n<msg xml:space="preserve">{desc|xmlescape}</msg>\n</logentry>\n'
|
||||
changeset_verbose = '<logentry revision="{rev}" node="{node}">\n{branches}{bookmarks}{tags}{parents}<author email="{author|email|xmlescape}">{author|person|xmlescape}</author>\n<date>{date|rfc3339date}</date>\n<msg xml:space="preserve">{desc|xmlescape}</msg>\n<paths>\n{file_adds}{file_dels}{file_mods}</paths>\n{file_copies}</logentry>\n'
|
||||
|
@ -343,6 +343,11 @@ Compact style works:
|
||||
|
||||
Test xml styles:
|
||||
|
||||
$ hg log --style xml -r 'not all()'
|
||||
<?xml version="1.0"?>
|
||||
<log>
|
||||
</log>
|
||||
|
||||
$ hg log --style xml
|
||||
<?xml version="1.0"?>
|
||||
<log>
|
||||
|
Loading…
Reference in New Issue
Block a user