Fix bug when removed file was not appearing in merge request diff
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
This commit is contained in:
parent
34431d8ecb
commit
fe7e97320c
4 changed files with 34 additions and 15 deletions
|
@ -17,6 +17,7 @@ v 8.1.0 (unreleased)
|
|||
- Move CI variables page to project settings area
|
||||
- Move CI triggers page to project settings area
|
||||
- Move CI project settings page to CE project settings area
|
||||
- Fix bug when removed file was not appearing in merge request diff
|
||||
|
||||
v 8.0.3
|
||||
- Fix URL shown in Slack notifications
|
||||
|
|
|
@ -167,4 +167,23 @@ module DiffHelper
|
|||
content_tag(:span, commit_id, class: 'monospace'),
|
||||
].join(' ').html_safe
|
||||
end
|
||||
|
||||
def commit_for_diff(diff)
|
||||
if diff.deleted_file
|
||||
@merge_request ? @merge_request.commits.last : @commit.parent_id
|
||||
else
|
||||
@commit
|
||||
end
|
||||
end
|
||||
|
||||
def diff_file_html_data(project, diff_commit, diff_file)
|
||||
{
|
||||
blob_diff_path: namespace_project_blob_diff_path(project.namespace, project,
|
||||
tree_join(diff_commit.id, diff_file.file_path))
|
||||
}
|
||||
end
|
||||
|
||||
def editable_diff?(diff)
|
||||
!diff.deleted_file && @merge_request && @merge_request.source_project
|
||||
end
|
||||
end
|
||||
|
|
|
@ -15,7 +15,12 @@
|
|||
|
||||
.files
|
||||
- diff_files.each_with_index do |diff_file, index|
|
||||
= render 'projects/diffs/file', diff_file: diff_file, i: index, project: project
|
||||
- diff_commit = commit_for_diff(diff_file.diff)
|
||||
- blob = project.repository.blob_for_diff(diff_commit, diff_file.diff)
|
||||
- next unless blob
|
||||
|
||||
= render 'projects/diffs/file', i: index, project: project,
|
||||
diff_file: diff_file, diff_commit: diff_commit, blob: blob
|
||||
|
||||
- if @diff_timeout
|
||||
.alert.alert-danger
|
||||
|
|
|
@ -1,24 +1,18 @@
|
|||
- blob = project.repository.blob_for_diff(@commit, diff_file.diff)
|
||||
- return unless blob
|
||||
- blob_diff_path = namespace_project_blob_diff_path(project.namespace, project, tree_join(@commit.id, diff_file.file_path))
|
||||
.diff-file{id: "diff-#{i}", data: {blob_diff_path: blob_diff_path }}
|
||||
.diff-file{id: "diff-#{i}", data: diff_file_html_data(project, diff_commit, diff_file)}
|
||||
.diff-header{id: "file-path-#{hexdigest(diff_file.new_path || diff_file.old_path)}"}
|
||||
- if diff_file.deleted_file
|
||||
%span="#{diff_file.old_path} deleted"
|
||||
|
||||
.diff-btn-group
|
||||
- if @commit.parent_ids.present?
|
||||
= view_file_btn(@commit.parent_id, diff_file, project)
|
||||
- elsif diff_file.diff.submodule?
|
||||
- if diff_file.diff.submodule?
|
||||
%span
|
||||
- submodule_item = project.repository.blob_at(@commit.id, diff_file.file_path)
|
||||
= submodule_link(submodule_item, @commit.id, project.repository)
|
||||
- else
|
||||
%span
|
||||
- if diff_file.renamed_file
|
||||
- if diff_file.deleted_file
|
||||
= "#{diff_file.old_path} deleted"
|
||||
- elsif diff_file.renamed_file
|
||||
= "#{diff_file.old_path} renamed to #{diff_file.new_path}"
|
||||
- else
|
||||
= diff_file.new_path
|
||||
|
||||
- if diff_file.mode_changed?
|
||||
%span.file-mode= "#{diff_file.diff.a_mode} → #{diff_file.diff.b_mode}"
|
||||
|
||||
|
@ -28,12 +22,12 @@
|
|||
%i.fa.fa-comments
|
||||
|
||||
|
||||
- if @merge_request && @merge_request.source_project
|
||||
- if editable_diff?(diff_file)
|
||||
= edit_blob_link(@merge_request.source_project,
|
||||
@merge_request.source_branch, diff_file.new_path,
|
||||
after: ' ', from_merge_request_id: @merge_request.id)
|
||||
|
||||
= view_file_btn(@commit.id, diff_file, project)
|
||||
= view_file_btn(diff_commit.id, diff_file, project)
|
||||
|
||||
.diff-content.diff-wrap-lines
|
||||
-# Skipp all non non-supported blobs
|
||||
|
|
Loading…
Reference in a new issue