diffs: add repo_name as parameter of diffset - fixes bug

where comparing different target/source repos had wrong diff links
This commit is contained in:
Daniel Dourvaris 2016-10-28 09:42:19 +03:00
parent cbd60560be
commit d1a7921cfc
4 changed files with 10 additions and 7 deletions

View file

@ -260,6 +260,7 @@ class ChangesetController(BaseRepoController):
return get_node
diffset = codeblocks.DiffSet(
repo_name=c.repo_name,
source_node_getter=_node_getter(commit1),
target_node_getter=_node_getter(commit2),
).render_patchset(_parsed, commit1.raw_id, commit2.raw_id)

View file

@ -254,6 +254,7 @@ class CompareController(BaseRepoController):
return get_node
c.diffset = codeblocks.DiffSet(
repo_name=source_repo.repo_name,
source_node_getter=_node_getter(source_commit),
target_node_getter=_node_getter(target_commit),
).render_patchset(_parsed, source_ref, target_ref)

View file

@ -352,7 +352,7 @@ class DiffSet(object):
# in the case of multiline code
HL_NONE = 'NONE' # no highlighting, fastest
def __init__(self, highlight_mode=HL_REAL,
def __init__(self, highlight_mode=HL_REAL, repo_name=None,
source_node_getter=lambda filename: None,
target_node_getter=lambda filename: None,
source_nodes=None, target_nodes=None,
@ -366,7 +366,7 @@ class DiffSet(object):
self.target_node_getter = target_node_getter
self.source_nodes = source_nodes or {}
self.target_nodes = target_nodes or {}
self.repo_name = repo_name
self.max_file_size_limit = max_file_size_limit
@ -377,6 +377,7 @@ class DiffSet(object):
changed_files=0,
files=[],
limited_diff=isinstance(patchset, LimitedDiffContainer),
repo_name=self.repo_name,
source_ref=source_ref,
target_ref=target_ref,
))

View file

@ -65,7 +65,7 @@ collapse_all = len(diffset.files) > collapse_when_files_over
<div class="diffset-heading ${diffset.limited_diff and 'diffset-heading-warning' or ''}">
%if commit:
<div class="pull-right">
<a class="btn tooltip" title="${_('Browse Files at revision {}').format(commit.raw_id)}" href="${h.url('files_home',repo_name=c.repo_name, revision=commit.raw_id, f_path='')}">
<a class="btn tooltip" title="${_('Browse Files at revision {}').format(commit.raw_id)}" href="${h.url('files_home',repo_name=diffset.repo_name, revision=commit.raw_id, f_path='')}">
${_('Browse Files')}
</a>
</div>
@ -256,7 +256,7 @@ from rhodecode.lib.diffs import NEW_FILENODE, DEL_FILENODE, \
%if filediff.patch['operation'] in ['D', 'M']:
<a
class="tooltip"
href="${h.url('files_home',repo_name=c.repo_name,f_path=filediff.source_file_path,revision=filediff.diffset.source_ref)}"
href="${h.url('files_home',repo_name=filediff.diffset.repo_name,f_path=filediff.source_file_path,revision=filediff.diffset.source_ref)}"
title="${h.tooltip(_('Show file at commit: %(commit_id)s') % {'commit_id': filediff.diffset.source_ref[:12]})}"
>
${_('Show file before')}
@ -272,7 +272,7 @@ from rhodecode.lib.diffs import NEW_FILENODE, DEL_FILENODE, \
%if filediff.patch['operation'] in ['A', 'M']:
<a
class="tooltip"
href="${h.url('files_home',repo_name=c.repo_name,f_path=filediff.target_file_path,revision=filediff.diffset.target_ref)}"
href="${h.url('files_home',repo_name=filediff.diffset.repo_name,f_path=filediff.target_file_path,revision=filediff.diffset.target_ref)}"
title="${h.tooltip(_('Show file at commit: %(commit_id)s') % {'commit_id': filediff.diffset.target_ref[:12]})}"
>
${_('Show file after')}
@ -288,14 +288,14 @@ from rhodecode.lib.diffs import NEW_FILENODE, DEL_FILENODE, \
<a
class="tooltip"
title="${h.tooltip(_('Raw diff'))}"
href="${h.url('files_diff_home',repo_name=c.repo_name,f_path=filediff.target_file_path,diff2=filediff.diffset.target_ref,diff1=filediff.diffset.source_ref,diff='raw')}"
href="${h.url('files_diff_home',repo_name=filediff.diffset.repo_name,f_path=filediff.target_file_path,diff2=filediff.diffset.target_ref,diff1=filediff.diffset.source_ref,diff='raw')}"
>
${_('Raw diff')}
</a>
<a
class="tooltip"
title="${h.tooltip(_('Download diff'))}"
href="${h.url('files_diff_home',repo_name=c.repo_name,f_path=filediff.target_file_path,diff2=filediff.diffset.target_ref,diff1=filediff.diffset.source_ref,diff='download')}"
href="${h.url('files_diff_home',repo_name=filediff.diffset.repo_name,f_path=filediff.target_file_path,diff2=filediff.diffset.target_ref,diff1=filediff.diffset.source_ref,diff='download')}"
>
${_('Download diff')}
</a>