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 variables page to project settings area
|
||||||
- Move CI triggers page to project settings area
|
- Move CI triggers page to project settings area
|
||||||
- Move CI project settings page to CE 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
|
v 8.0.3
|
||||||
- Fix URL shown in Slack notifications
|
- Fix URL shown in Slack notifications
|
||||||
|
|
|
@ -167,4 +167,23 @@ module DiffHelper
|
||||||
content_tag(:span, commit_id, class: 'monospace'),
|
content_tag(:span, commit_id, class: 'monospace'),
|
||||||
].join(' ').html_safe
|
].join(' ').html_safe
|
||||||
end
|
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
|
end
|
||||||
|
|
|
@ -15,7 +15,12 @@
|
||||||
|
|
||||||
.files
|
.files
|
||||||
- diff_files.each_with_index do |diff_file, index|
|
- 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
|
- if @diff_timeout
|
||||||
.alert.alert-danger
|
.alert.alert-danger
|
||||||
|
|
|
@ -1,24 +1,18 @@
|
||||||
- blob = project.repository.blob_for_diff(@commit, diff_file.diff)
|
.diff-file{id: "diff-#{i}", data: diff_file_html_data(project, diff_commit, diff_file)}
|
||||||
- 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-header{id: "file-path-#{hexdigest(diff_file.new_path || diff_file.old_path)}"}
|
.diff-header{id: "file-path-#{hexdigest(diff_file.new_path || diff_file.old_path)}"}
|
||||||
- if diff_file.deleted_file
|
- if diff_file.diff.submodule?
|
||||||
%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?
|
|
||||||
%span
|
%span
|
||||||
- submodule_item = project.repository.blob_at(@commit.id, diff_file.file_path)
|
- submodule_item = project.repository.blob_at(@commit.id, diff_file.file_path)
|
||||||
= submodule_link(submodule_item, @commit.id, project.repository)
|
= submodule_link(submodule_item, @commit.id, project.repository)
|
||||||
- else
|
- else
|
||||||
%span
|
%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}"
|
= "#{diff_file.old_path} renamed to #{diff_file.new_path}"
|
||||||
- else
|
- else
|
||||||
= diff_file.new_path
|
= diff_file.new_path
|
||||||
|
|
||||||
- if diff_file.mode_changed?
|
- if diff_file.mode_changed?
|
||||||
%span.file-mode= "#{diff_file.diff.a_mode} → #{diff_file.diff.b_mode}"
|
%span.file-mode= "#{diff_file.diff.a_mode} → #{diff_file.diff.b_mode}"
|
||||||
|
|
||||||
|
@ -28,12 +22,12 @@
|
||||||
%i.fa.fa-comments
|
%i.fa.fa-comments
|
||||||
|
|
||||||
|
|
||||||
- if @merge_request && @merge_request.source_project
|
- if editable_diff?(diff_file)
|
||||||
= edit_blob_link(@merge_request.source_project,
|
= edit_blob_link(@merge_request.source_project,
|
||||||
@merge_request.source_branch, diff_file.new_path,
|
@merge_request.source_branch, diff_file.new_path,
|
||||||
after: ' ', from_merge_request_id: @merge_request.id)
|
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
|
.diff-content.diff-wrap-lines
|
||||||
-# Skipp all non non-supported blobs
|
-# Skipp all non non-supported blobs
|
||||||
|
|
Loading…
Reference in a new issue