Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-06-16 09:08:59 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-06-16 09:08:59 +0300
commit06bcbc77e472a70b8332150a941539c55953ef2b (patch)
tree903ff19991a3c3234626b1e86827a42063eeac61 /app/helpers/diff_helper.rb
parent1325f8cf2dce0f24403ea27c4ee58afd51fa3a8e (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/helpers/diff_helper.rb')
-rw-r--r--app/helpers/diff_helper.rb27
1 files changed, 17 insertions, 10 deletions
diff --git a/app/helpers/diff_helper.rb b/app/helpers/diff_helper.rb
index 522593dd487..71c8296ad2e 100644
--- a/app/helpers/diff_helper.rb
+++ b/app/helpers/diff_helper.rb
@@ -225,6 +225,23 @@ module DiffHelper
end
end
+ def conflicts(allow_tree_conflicts: false)
+ return unless options[:merge_ref_head_diff]
+
+ conflicts_service = MergeRequests::Conflicts::ListService.new(merge_request, allow_tree_conflicts: allow_tree_conflicts) # rubocop:disable CodeReuse/ServiceClass
+
+ return unless allow_tree_conflicts || conflicts_service.can_be_resolved_in_ui?
+
+ conflicts_service.conflicts.files.index_by(&:path)
+ rescue Gitlab::Git::Conflict::Resolver::ConflictSideMissing
+ # This exception is raised when changes on a fork isn't present on canonical repo yet.
+ # We can't list conflicts until the canonical repo gets the references from the fork
+ # which happens asynchronously when updating MR.
+ #
+ # Return empty hash to indicate that there are no conflicts.
+ {}
+ end
+
private
def diff_btn(title, name, selected)
@@ -271,16 +288,6 @@ module DiffHelper
Gitlab::CodeNavigationPath.new(merge_request.project, merge_request.diff_head_sha)
end
- def conflicts(allow_tree_conflicts: false)
- return unless options[:merge_ref_head_diff]
-
- conflicts_service = MergeRequests::Conflicts::ListService.new(merge_request, allow_tree_conflicts: allow_tree_conflicts) # rubocop:disable CodeReuse/ServiceClass
-
- return unless allow_tree_conflicts || conflicts_service.can_be_resolved_in_ui?
-
- conflicts_service.conflicts.files.index_by(&:path)
- end
-
def log_overflow_limits(diff_files:, collection_overflow:)
if diff_files.any?(&:too_large?)
Gitlab::Metrics.add_event(:diffs_overflow_single_file_limits)