Mercurial > kallithea
diff rhodecode/templates/changeset/changeset.html @ 2995:32471bd1f4ee beta
Implemented generation of changesets based
on whole diff instead of per file diff. That
can give a big speed improvement for large changesets in
repositories with large history.
- improved handling of binary files
- show renames of binary files
- implemented new diff limit functionality
- unify diff generation between hg and git
- Added binary indicators for changed files,
- added diff lib tests
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Mon, 05 Nov 2012 19:57:29 +0100 |
parents | 3853e37db97c |
children | ebe3e388bbb3 |
line wrap: on
line diff
--- a/rhodecode/templates/changeset/changeset.html Fri Nov 09 19:33:20 2012 +0100 +++ b/rhodecode/templates/changeset/changeset.html Mon Nov 05 19:57:29 2012 +0100 @@ -24,6 +24,12 @@ <div class="title"> ${self.breadcrumbs()} </div> + <script> + var _USERS_AC_DATA = ${c.users_array|n}; + var _GROUPS_AC_DATA = ${c.users_groups_array|n}; + AJAX_COMMENT_URL = "${url('changeset_comment',repo_name=c.repo_name,revision=c.changeset.raw_id)}"; + AJAX_COMMENT_DELETE_URL = "${url('changeset_comment_delete',repo_name=c.repo_name,comment_id='__COMMENT_ID__')}"; + </script> <div class="table"> <div class="diffblock"> <div class="code-header"> @@ -40,7 +46,7 @@ %endif </div> <div class="diff-actions"> - <a href="${h.url('raw_changeset_home',repo_name=c.repo_name,revision=c.changeset.raw_id,diff='show')}" class="tooltip" title="${h.tooltip(_('raw diff'))}"><img class="icon" src="${h.url('/images/icons/page_white.png')}"/></a> + <a href="${h.url('raw_changeset_home',repo_name=c.repo_name,revision=c.changeset.raw_id,diff='raw')}" class="tooltip" title="${h.tooltip(_('raw diff'))}"><img class="icon" src="${h.url('/images/icons/page_white.png')}"/></a> <a href="${h.url('raw_changeset_home',repo_name=c.repo_name,revision=c.changeset.raw_id,diff='download')}" class="tooltip" title="${h.tooltip(_('download diff'))}"><img class="icon" src="${h.url('/images/icons/page_white_get.png')}"/></a> ${c.ignorews_url(request.GET)} ${c.context_url(request.GET)} @@ -100,37 +106,36 @@ </div> </div> <span> + % if c.limited_diff: + ${_('%s files affected:') % (len(c.changeset.affected_files))} + % else: ${_('%s files affected with %s insertions and %s deletions:') % (len(c.changeset.affected_files),c.lines_added,c.lines_deleted)} - </span> + %endif + </span> <div class="cs_files"> - %for change,filenode,diff,cs1,cs2,stat in c.changes: - <div class="cs_${change}"> - <div class="node"> - %if change != 'removed': - ${h.link_to(h.safe_unicode(filenode.path),c.anchor_url(filenode.changeset.raw_id,filenode.path,request.GET)+"_target")} - %else: - ${h.link_to(h.safe_unicode(filenode.path),h.url.current(anchor=h.FID('',filenode.path)))} - %endif - </div> - <div class="changes">${h.fancy_file_stats(stat)}</div> - </div> - %endfor - % if c.cut_off: - ${_('Changeset was too big and was cut off...')} - % endif + %for FID, (cs1, cs2, change, path, diff, stats) in c.changes[c.changeset.raw_id].iteritems(): + <div class="cs_${change}"> + <div class="node"> + <a href="#${FID}">${h.safe_unicode(path)}</a> + </div> + <div class="changes">${h.fancy_file_stats(stats)}</div> + </div> + %endfor + % if c.limited_diff: + <h5>${_('Changeset was too big and was cut off...')}</h5> + % endif </div> </div> </div> - <script> - var _USERS_AC_DATA = ${c.users_array|n}; - var _GROUPS_AC_DATA = ${c.users_groups_array|n}; - AJAX_COMMENT_URL = "${url('changeset_comment',repo_name=c.repo_name,revision=c.changeset.raw_id)}"; - AJAX_COMMENT_DELETE_URL = "${url('changeset_comment_delete',repo_name=c.repo_name,comment_id='__COMMENT_ID__')}"; - </script> + ## diff block <%namespace name="diff_block" file="/changeset/diff_block.html"/> - ${diff_block.diff_block(c.changes)} + ${diff_block.diff_block(c.changes[c.changeset.raw_id])} + + % if c.limited_diff: + <h4>${_('Changeset was too big and was cut off...')}</h4> + % endif ## template for inline comment form <%namespace name="comment" file="/changeset/changeset_file_comment.html"/>