Mercurial > hg
view mercurial/templates/map-cmdline.xml @ 31276:cd29673cebdb
hgweb: use patch.diffhunks in webutil.diffs to simplify the algorithm
Function patch.diffhunks yields items for a "block" (i.e. a file) as a whole
so take advantage of this to simplify the algorithm and avoid parsing diff
lines to determine whether we're starting a new "block" or not. Thus we drop
to external block counter and rely on diffhunks iterations instead.
We also take advantage of the fact that patch.diffhunks() yields *lines* of
hunks (instead of a string) to avoid building a list that is ''.join-ed into a
string that is then split.
As lines in 'header' returned by patch.diffhunks() have no trailing new line,
we need to insert it ourselves to match template expectations.
author | Denis Laxalde <denis.laxalde@logilab.fr> |
---|---|
date | Mon, 06 Mar 2017 09:28:33 +0100 |
parents | 3095b1027661 |
children | f4aeb952ab77 |
line wrap: on
line source
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' changeset_debug = '<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}{extras}</logentry>\n' file_add = '<path action="A">{file_add|xmlescape}</path>\n' file_mod = '<path action="M">{file_mod|xmlescape}</path>\n' file_del = '<path action="R">{file_del|xmlescape}</path>\n' start_file_copies = '<copies>\n' file_copy = '<copy source="{source|xmlescape}">{name|xmlescape}</copy>\n' end_file_copies = '</copies>\n' parent = '<parent revision="{rev}" node="{node}" />\n' branch = '<branch>{branch|xmlescape}</branch>\n' tag = '<tag>{tag|xmlescape}</tag>\n' bookmark = '<bookmark>{bookmark|xmlescape}</bookmark>\n' extra = '<extra key="{key|xmlescape}">{value|xmlescape}</extra>\n'