Commit 52b07013 authored by Douwe Maan's avatar Douwe Maan Committed by Ruben Davila

Merge branch '21275-getting-500-error-when-viewing-a-merge-request'

parent e618ce28
...@@ -8,6 +8,11 @@ v 8.11.2 ...@@ -8,6 +8,11 @@ v 8.11.2
- Does not halt the GitHub import process when an error occurs. !5763 - Does not halt the GitHub import process when an error occurs. !5763
- Fix file links on project page when default view is Files !5933 - Fix file links on project page when default view is Files !5933
- Fixed enter key in search input not working !5888 - Fixed enter key in search input not working !5888
- Don't show resolve conflicts link before MR status is updated
- Don't prevent viewing the MR when git refs for conflicts can't be found on disk
v 8.11.2 (unreleased)
- Show "Create Merge Request" widget for push events to fork projects on the source project
v 8.11.1 v 8.11.1
- Pulled due to packaging error. - Pulled due to packaging error.
......
...@@ -777,8 +777,12 @@ class MergeRequest < ActiveRecord::Base ...@@ -777,8 +777,12 @@ class MergeRequest < ActiveRecord::Base
return @conflicts_can_be_resolved_in_ui = false unless has_complete_diff_refs? return @conflicts_can_be_resolved_in_ui = false unless has_complete_diff_refs?
begin begin
@conflicts_can_be_resolved_in_ui = conflicts.files.each(&:lines) # Try to parse each conflict. If the MR's mergeable status hasn't been updated,
rescue Gitlab::Conflict::Parser::ParserError, Gitlab::Conflict::FileCollection::ConflictSideMissing # ensure that we don't say there are conflicts to resolve when there are no conflict
# files.
conflicts.files.each(&:lines)
@conflicts_can_be_resolved_in_ui = conflicts.files.length > 0
rescue Rugged::OdbError, Gitlab::Conflict::Parser::ParserError, Gitlab::Conflict::FileCollection::ConflictSideMissing
@conflicts_can_be_resolved_in_ui = false @conflicts_can_be_resolved_in_ui = false
end end
end end
......
...@@ -181,6 +181,17 @@ module Gitlab ...@@ -181,6 +181,17 @@ module Gitlab
sections: sections sections: sections
} }
end end
# Don't try to print merge_request or repository.
def inspect
instance_variables = [:merge_file_result, :their_path, :our_path, :our_mode].map do |instance_variable|
value = instance_variable_get("@#{instance_variable}")
"#{instance_variable}=\"#{value}\""
end
"#<#{self.class} #{instance_variables.join(' ')}>"
end
end end
end end
end end
...@@ -890,6 +890,19 @@ describe MergeRequest, models: true do ...@@ -890,6 +890,19 @@ describe MergeRequest, models: true do
expect(merge_request.conflicts_can_be_resolved_in_ui?).to be_falsey expect(merge_request.conflicts_can_be_resolved_in_ui?).to be_falsey
end end
it 'returns a falsey value when the MR is marked as having conflicts, but has none' do
merge_request = create_merge_request('master')
expect(merge_request.conflicts_can_be_resolved_in_ui?).to be_falsey
end
it 'returns a falsey value when the MR has a missing ref after a force push' do
merge_request = create_merge_request('conflict-resolvable')
allow(merge_request.conflicts).to receive(:merge_index).and_raise(Rugged::OdbError)
expect(merge_request.conflicts_can_be_resolved_in_ui?).to be_falsey
end
it 'returns a falsey value when the MR does not support new diff notes' do it 'returns a falsey value when the MR does not support new diff notes' do
merge_request = create_merge_request('conflict-resolvable') merge_request = create_merge_request('conflict-resolvable')
merge_request.merge_request_diff.update_attributes(start_commit_sha: nil) merge_request.merge_request_diff.update_attributes(start_commit_sha: nil)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment