# with
# set cset_href = href.changeset(new_rev, reponame)
# set old_drev = display_rev(old_rev)
# set new_drev = display_rev(new_rev)
# set newpath
${new_path}
# endset
# set oldpath
${old_path}
# endset
# set newrev
${new_drev}
# endset
# set newrrev
r${new_drev}
# endset
# set shortnewrev
${new_drev}
# endset
# set oldrrev
r${old_drev}
# endset
# set logoldnew
[${old_drev}:${new_drev}]
# endset
# if reponame:
# if changeset and restricted:
# trans newrev, newpath, reponame
Changeset ${newrev} in ${reponame} for ${newpath}
# endtrans
# elif not changeset and restricted:
# trans newpath, logoldnew, reponame
Changes in ${newpath} ${logoldnew} in ${reponame}
# endtrans
# elif not changeset and not restricted:
# trans reponame, oldpath, oldrrev, newpath, newrrev
Changes in ${reponame} from ${oldpath} at ${oldrev}
to ${newpath} at ${newrev}
# endtrans
# else:
# if annotated:
# trans shortnewrev, reponame
Changeset ${shortnewrev} in ${reponame}
# endtrans
# else:
# trans new_drev, reponame
Changeset ${new_drev} in ${reponame}
# endtrans
# endif
# endif
# else:
# if changeset and restricted:
# trans newrev, newpath=newpath
Changeset ${newrev} for ${newpath}
# endtrans
# elif not changeset and restricted:
# trans newpath, logoldnew
Changes in ${newpath} ${logoldnew}
# endtrans
# elif not changeset and not restricted:
# trans oldpath, oldrrev, newpath, newrrev
Changes from ${oldpath} at ${oldrrev} to ${newpath} at ${newrrev}
# endtrans
# else:
# if annotated:
# trans shortnewrev
Changeset ${shortnewrev}
# endtrans
# else:
# trans new_drev
Changeset ${new_drev}
# endtrans
# endif
# endif
# endif
# endwith
# set o = diff.options
# set optionset = o.ignoreblanklines or o.ignorecase or o.ignorewhitespace
# if not req.is_xhr and (has_diffs or optionset):
# endif
# macro node_change(idx, item, cl, kind)
# set ndiffs = len(item.diffs) if item.diffs is not none else 0
# set nprops = len(item.props)
# set is_removal = cl == 'rem'
# set path = item.old.get('path') if is_removal else item.new.get('path')
# set path = path and path[len(location):].strip('/')
## FIXME check path...
# if is_removal:
${path}
# else:
${path or (location and '.') or _("(root)")}
# endif
# if item.old and item.old.get('path') and item.change in ('copy', 'move'):
# set oldpath
${item.old.path}
# endset
# trans kind, oldpath
(${kind} from ${oldpath})
# endtrans
# endif
# if 'hide_diff' in item:
(${
_("view diffs")})
# elif ndiffs + nprops is greaterthan(0):
(${
ngettext('%(num)d diff', '%(num)d diffs', ndiffs) if ndiffs
}${
', ' if ndiffs and nprops
}${
ngettext('%(num)d prop', '%(num)d props', nprops) if nprops
})
# endif
# if cl == 'mod' and item.diffs is none:
(
previous)
# endif
# endmacro
# if changeset:
- ${_("Timestamp:")}
-
# with delta = datetime.now(utc) - changeset.date
${format_datetime(changeset.date)}
# if delta is lessthan(timedelta(0, 3600)):
${_("(less than one hour ago)")}
# else:
# trans age = dateinfo(changeset.date)
(${age} ago)
# endtrans
# endif
# endwith
- ${_("Author:")}
- ${authorinfo(changeset.author)}
# for prop in properties:
# if prop.rendered:
-
${prop.rendered.name}
-
${prop.rendered.content}
# else:
- ${prop.name}:
- ${prop.value}
# endif
# endfor
- ${_("Message:")}
-
# if not len(changeset.message.strip()):
# elif wiki_format_messages:
${wiki_to_html(context, changeset.message, escape_newlines=True)}
# else:
${changeset.message}
# endif
# endif
# if location:
- ${_("Location:")}
- ${
location}
# endif
-
${ngettext("File:", "Files:", num=len(files)) if files else
_("(No files)")}
-
# if filestats:
# with f = filestats
# set added, deleted, edited, copied, moved = (
f.add, f.delete, f.edit, f['copy'], f.move)
# if added:
-
${ngettext("%(num)d added", "%(num)d added", num=added)}
# endif
# if deleted:
-
${ngettext("%(num)d deleted", "%(num)d deleted", num=deleted)}
# endif
# if edited:
-
${ngettext("%(num)d edited", "%(num)d edited", num=edited)}
# endif
# if copied:
-
${ngettext("%(num)d copied", "%(num)d copied", num=copied)}
# endif
# if moved:
- ${ngettext("%(num)d moved", "%(num)d moved", num=moved)}
# endif
# endwith
# endif
# for item in changes:
-
# if item.change == 'add':
${node_change(loop.index0, item, 'add', _("added"))}
# elif item.change == 'delete':
${node_change(loop.index0, item, 'rem', _("deleted"))}
# elif item.change == 'copy':
${node_change(loop.index0, item, 'cp', _("copied"))}
# elif item.change == 'move':
${node_change(loop.index0, item, 'mv', _("moved"))}
# elif item.change == 'edit':
${node_change(loop.index0, item, 'mod', _("modified"))}
# else:
## ignored change (maybe because of diff options or ignored prop.)
# endif
# endfor
# if has_diffs:
${_("Legend:")}
- ${_("Unmodified")}
- ${_("Added")}
- ${_("Removed")}
# if diff.style != 'inline':
- ${_("Modified")}
# endif
# endif
# if show_diffs is sameas false:
# if max_diff_bytes and diff_bytes is greaterthan(max_diff_bytes):
# if 'WIKI_VIEW' not in perm(Resource('wiki', 'TracIni')):
# set pretty_max_bytes = pretty_size(max_diff_bytes)
# else:
# set pretty_max_bytes
${pretty_size(max_diff_bytes)}
# endset
# endif
# set pretty_diff_bytes = pretty_size(diff_bytes)
# trans pretty_diff_bytes, pretty_max_bytes
Changeset view not shown, since the total size
(${pretty_diff_bytes}) exceeds ${pretty_max_bytes}
# endtrans
# endif
# if max_diff_files and diff_files is greaterthan(max_diff_files):
# if 'WIKI_VIEW' not in perm(Resource('wiki', 'TracIni')):
# set pretty_max_files = max_diff_files
# else:
# set pretty_max_files
${max_diff_files}
# endset
# endif
# trans diff_files, pretty_max_files
Changeset view not shown, since the number of files
(${diff_files}) exceeds ${pretty_max_files}
# endtrans
# endif
# endif
# with no_id = false
# include 'diff_div.html'
# endwith
# if jmacros is defined:
# call(note, page) jmacros.wikihelp('TracChangeset'):
# trans note, page
${note} See ${page} for help on using the changeset viewer.
# endtrans
# endcall
# endif