% if (len(c.changeset.affected_files) <= c.affected_files_cut_off) or c.fulldiff:
${len(c.changeset.removed)}
${len(c.changeset.changed)}
${len(c.changeset.added)}
% else:
!
!
!
% endif
%if len(c.changeset.parents)>1:
${_('merge')}
%endif
%if h.is_hg(c.rhodecode_repo):
%for book in c.changeset.bookmarks:
${h.link_to(h.shorter(book),h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id))}
%endfor
%endif
%for tag in c.changeset.tags:
${h.link_to(tag,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id))}
%endfor
%if c.changeset.branch:
${h.link_to(c.changeset.branch,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id))}
%endif
${h.person(c.changeset.author)} - ${h.age(c.changeset.date,True)} ${h.fmt_date(c.changeset.date)}
${h.email_or_none(c.changeset.author)}
${h.urlify_commit(c.changeset.message, c.repo_name)}
% if c.limited_diff:
${ungettext('%s file changed','%s files changed',len(c.changeset.affected_files)) % (len(c.changeset.affected_files))}:
% else:
${ungettext('%s file changed with %s insertions and %s deletions','%s files changed with %s insertions and %s deletions', len(c.changeset.affected_files)) % (len(c.changeset.affected_files),c.lines_added,c.lines_deleted)}:
%endif
%for FID, (cs1, cs2, change, path, diff, stats) in c.changes[c.changeset.raw_id].iteritems():
${h.fancy_file_stats(stats)}
%endfor
% if c.limited_diff:
${_('Changeset was too big and was cut off...')} ${_('Show full diff')}
% endif