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:
Diffstat (limited to 'app/services/merge_requests/create_service.rb')
-rw-r--r--app/services/merge_requests/create_service.rb21
1 files changed, 15 insertions, 6 deletions
diff --git a/app/services/merge_requests/create_service.rb b/app/services/merge_requests/create_service.rb
index 8e0f72eb380..04d08f257f1 100644
--- a/app/services/merge_requests/create_service.rb
+++ b/app/services/merge_requests/create_service.rb
@@ -14,11 +14,15 @@ module MergeRequests
end
def after_create(issuable)
- issuable.mark_as_preparing
+ current_user_id = current_user.id
+
+ issuable.run_after_commit do
+ # Add new items to MergeRequests::AfterCreateService if they can
+ # be performed in Sidekiq
+ NewMergeRequestWorker.perform_async(issuable.id, current_user_id)
+ end
- # Add new items to MergeRequests::AfterCreateService if they can
- # be performed in Sidekiq
- NewMergeRequestWorker.perform_async(issuable.id, current_user.id)
+ issuable.mark_as_preparing
super
end
@@ -34,7 +38,12 @@ module MergeRequests
# callback (e.g. after_create), a database transaction will be
# open while the Gitaly RPC waits. To avoid an idle in transaction
# timeout, we do this before we attempt to save the merge request.
- merge_request.eager_fetch_ref!
+
+ if Feature.enabled?(:async_merge_request_diff_creation, current_user)
+ merge_request.skip_ensure_merge_request_diff = true
+ else
+ merge_request.eager_fetch_ref!
+ end
end
def set_projects!
@@ -59,4 +68,4 @@ module MergeRequests
end
end
-MergeRequests::CreateService.include_mod_with('MergeRequests::CreateService')
+MergeRequests::CreateService.prepend_mod_with('MergeRequests::CreateService')