Do not create a MergeRequestDiff record when source branch is deleted
In order to have a valid MergeRequestDiff record when need head_commit_sha. When a source branch is deleted head_commit_sha is nil. This causes an exception in merge request "Changes" tab.
This commit is contained in:
parent
37abb20cec
commit
f913170e2f
|
@ -60,15 +60,7 @@ module MergeRequests
|
|||
merge_requests = filter_merge_requests(merge_requests)
|
||||
|
||||
merge_requests.each do |merge_request|
|
||||
if merge_request.source_branch == @branch_name || force_push?
|
||||
merge_request.reload_diff
|
||||
else
|
||||
mr_commit_ids = merge_request.commits.map(&:id)
|
||||
push_commit_ids = @commits.map(&:id)
|
||||
matches = mr_commit_ids & push_commit_ids
|
||||
merge_request.reload_diff if matches.any?
|
||||
end
|
||||
|
||||
reload_diff(merge_request) unless branch_removed?
|
||||
merge_request.mark_as_unchecked
|
||||
end
|
||||
end
|
||||
|
@ -173,5 +165,16 @@ module MergeRequests
|
|||
def branch_removed?
|
||||
Gitlab::Git.blank_ref?(@newrev)
|
||||
end
|
||||
|
||||
def reload_diff(merge_request)
|
||||
if merge_request.source_branch == @branch_name || force_push?
|
||||
merge_request.reload_diff
|
||||
else
|
||||
mr_commit_ids = merge_request.commits.map(&:id)
|
||||
push_commit_ids = @commits.map(&:id)
|
||||
matches = mr_commit_ids & push_commit_ids
|
||||
merge_request.reload_diff if matches.any?
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: Do not create a MergeRequestDiff record when source branch is deleted
|
||||
merge_request: 7481
|
||||
author:
|
|
@ -227,6 +227,16 @@ describe MergeRequests::RefreshService, services: true do
|
|||
end
|
||||
end
|
||||
|
||||
context 'when the source branch is deleted' do
|
||||
it 'does not create a MergeRequestDiff record' do
|
||||
refresh_service = service.new(@project, @user)
|
||||
|
||||
expect do
|
||||
refresh_service.execute(@oldrev, Gitlab::Git::BLANK_SHA, 'refs/heads/master')
|
||||
end.not_to change { MergeRequestDiff.count }
|
||||
end
|
||||
end
|
||||
|
||||
def reload_mrs
|
||||
@merge_request.reload
|
||||
@fork_merge_request.reload
|
||||
|
|
Loading…
Reference in New Issue