diff --git a/kallithea/controllers/changeset.py b/kallithea/controllers/changeset.py
--- a/kallithea/controllers/changeset.py
+++ b/kallithea/controllers/changeset.py
@@ -269,8 +269,6 @@ class ChangesetController(BaseRepoContro
revision=changeset.raw_id)
c.inline_comments.extend(inlines)
- c.changes[changeset.raw_id] = []
-
cs2 = changeset.raw_id
cs1 = changeset.parents[0].raw_id if changeset.parents else EmptyChangeset().raw_id
context_lcl = get_line_ctx('', request.GET)
@@ -283,7 +281,7 @@ class ChangesetController(BaseRepoContro
vcs=c.db_repo_scm_instance.alias,
format='gitdiff',
diff_limit=diff_limit)
- cs_changes = OrderedDict()
+ file_diff_data = OrderedDict()
if method == 'show':
_parsed = diff_processor.prepare()
c.limited_diff = False
@@ -295,15 +293,15 @@ class ChangesetController(BaseRepoContro
c.lines_deleted += st['deleted']
filename = f['filename']
fid = h.FID(changeset.raw_id, filename)
+ url_fid = h.FID('', filename)
diff = diff_processor.as_html(enable_comments=enable_comments,
parsed_lines=[f])
- cs_changes[fid] = [cs1, cs2, f['operation'], filename,
- diff, st]
+ file_diff_data[fid] = (url_fid, f['operation'], filename, diff, st)
else:
# downloads/raw we only need RAW diff nothing else
diff = diff_processor.as_raw()
- cs_changes[''] = [None, None, None, None, diff, None]
- c.changes[changeset.raw_id] = cs_changes
+ file_diff_data[''] = (None, None, None, diff, None)
+ c.changes[changeset.raw_id] = (cs1, cs2, file_diff_data)
#sort comments in creation order
c.comments = [com for com_id, com in sorted(comments.items())]
diff --git a/kallithea/controllers/files.py b/kallithea/controllers/files.py
--- a/kallithea/controllers/files.py
+++ b/kallithea/controllers/files.py
@@ -683,17 +683,13 @@ class FilesController(BaseRepoController
ign_whitespace_lcl = get_ignore_ws(fid, request.GET)
lim = request.GET.get('fulldiff') or self.cut_off_limit
- cs1, cs2, op, diff, st = diffs.wrapped_diff(filenode_old=node1,
+ c.a_rev, c.cs_rev, op, diff, st = diffs.wrapped_diff(filenode_old=node1,
filenode_new=node2,
cut_off_limit=lim,
ignore_whitespace=ign_whitespace_lcl,
line_context=line_context_lcl,
enable_comments=False)
- filename = node1.path
- cs_changes = {
- 'fid': [cs1, cs2, op, filename, diff, st]
- }
- c.changes = cs_changes
+ c.file_diff_data = {fid: (fid, op, node1.path, diff, st)}
return render('files/file_diff.html')
diff --git a/kallithea/templates/changeset/changeset.html b/kallithea/templates/changeset/changeset.html
--- a/kallithea/templates/changeset/changeset.html
+++ b/kallithea/templates/changeset/changeset.html
@@ -160,18 +160,19 @@ ${self.repo_context_bar('changelog', c.c
+ <% a_rev, cs_rev, file_diff_data = c.changes[c.changeset.raw_id] %>
% if c.limited_diff:
- ${ungettext('%s file changed', '%s files changed', len(c.changeset.affected_files)) % (len(c.changeset.affected_files))}:
+ ${ungettext('%s file changed', '%s files changed', len(file_diff_data)) % len(file_diff_data)}:
% 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)}:
+ ${ungettext('%s file changed with %s insertions and %s deletions', '%s files changed with %s insertions and %s deletions', len(file_diff_data)) % (len(file_diff_data), c.lines_added, c.lines_deleted)}:
%endif
- %for fid, (cs1, cs2, op, path, diff, stats) in c.changes[c.changeset.raw_id].iteritems():
+ %for fid, (url_fid, op, path, diff, stats) in file_diff_data.iteritems():
${h.fancy_file_stats(stats)}
@@ -188,7 +189,9 @@ ${self.repo_context_bar('changelog', c.c
- ${diff_block.diff_block(c.changes[cs.raw_id])}
+ <% a_rev, cs_rev, file_diff_data = c.changes[cs.raw_id] %>
+ ${diff_block.diff_block(c.repo_name, 'rev', a_rev, a_rev,
+ c.repo_name, 'rev', cs_rev, cs_rev, file_diff_data)}
%endfor
%def>
diff --git a/kallithea/templates/changeset/diff_block.html b/kallithea/templates/changeset/diff_block.html
--- a/kallithea/templates/changeset/diff_block.html
+++ b/kallithea/templates/changeset/diff_block.html
@@ -1,14 +1,16 @@
## -*- coding: utf-8 -*-
-<%def name="diff_block(change)">
+<%def name="diff_block(a_repo_name, a_ref_type, a_ref_name, a_rev,
+ cs_repo_name, cs_ref_name, cs_ref_type, cs_rev,
+ file_diff_data)">
- ↑ ${_('Collapse Diff')} ↑
+ ↑ ${_('Collapse Diff')} ↑
-
-%for id_fid, (a_rev, cs_rev, op, filename, diff, stats) in change.iteritems():
- ${diff_block_diffblock(id_fid, h.FID(cs_rev, filename), op, filename, diff,
- c.repo_name, a_rev, 'rev', a_rev,
- c.repo_name, cs_rev, 'rev', cs_rev)}
+
+%for id_fid, (url_fid, op, filename, diff, stats) in file_diff_data.iteritems():
+ ${diff_block_diffblock(id_fid, url_fid, op, filename, diff,
+ a_repo_name, a_rev, a_ref_type, a_ref_name,
+ cs_repo_name, cs_rev, cs_ref_type, cs_ref_name)}
%endfor
%def>
diff --git a/kallithea/templates/files/file_diff.html b/kallithea/templates/files/file_diff.html
--- a/kallithea/templates/files/file_diff.html
+++ b/kallithea/templates/files/file_diff.html
@@ -23,7 +23,8 @@ ${self.repo_context_bar('changelog')}
## diff block
<%namespace name="diff_block" file="/changeset/diff_block.html"/>
${diff_block.diff_block_js()}
- ${diff_block.diff_block(c.changes)}
+ ${diff_block.diff_block(c.repo_name, 'rev', c.a_rev, c.a_rev,
+ c.repo_name, 'rev', c.cs_rev, c.cs_rev, c.file_diff_data)}
%def>
${_('Changeset was too big and was cut off...')} ${_('Show full diff anyway')}
% endif diff --git a/kallithea/templates/changeset/changeset_range.html b/kallithea/templates/changeset/changeset_range.html --- a/kallithea/templates/changeset/changeset_range.html +++ b/kallithea/templates/changeset/changeset_range.html @@ -59,11 +59,12 @@ ${self.repo_context_bar('changelog')}