Mercurial > hg
view mercurial/templates/map-cmdline.changelog @ 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 | f91e5630ce7e |
children | f4aeb952ab77 |
line wrap: on
line source
header = '{date|shortdate} {author|person} <{author|email}>\n\n' header_verbose = '' changeset = '\t* {files|stringify|fill68|tabindent}{desc|fill68|tabindent|strip}\n\t[{node|short}]{tags}{branches}\n\n' changeset_quiet = '\t* {desc|firstline|fill68|tabindent|strip}\n\n' changeset_verbose = '{date|isodate} {author|person} <{author|email}> ({node|short}{tags}{branches})\n\n\t* {file_adds|stringify|fill68|tabindent}{file_dels|stringify|fill68|tabindent}{files|stringify|fill68|tabindent}{desc|fill68|tabindent|strip}\n\n' start_tags = ' [' tag = '{tag}, ' last_tag = '{tag}]' start_branches = ' <' branch = '{branch}, ' last_branch = '{branch}>' file = '{file}, ' last_file = '{file}:\n\t' file_add = '{file_add}, ' last_file_add = '{file_add}: new file.\n* ' file_del = '{file_del}, ' last_file_del = '{file_del}: deleted file.\n* '