diff options
Diffstat (limited to 'app/services/merge_requests/create_service.rb')
-rw-r--r-- | app/services/merge_requests/create_service.rb | 21 |
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') |