diff --git a/app/models/repository.rb b/app/models/repository.rb index c4bdc84348ea0ef07361b085a74be1669afb5554..4e3e70192abafdd9cb23f1f7541079c2c4cdb5d5 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -1121,6 +1121,8 @@ class Repository fetch_ref(path_to_repo, ref, ref_path) end + # Whenever `source_branch` is passed, if `branch` doesn't exist, it would + # be created from `source_branch`. def update_branch_with_hooks(current_user, branch, source_branch: nil) update_autocrlf_option diff --git a/app/services/files/base_service.rb b/app/services/files/base_service.rb index fd62246eddbafb1d260650d801ee90e8ca4d2040..8689c83d40eb1b2c97b6edbaf4d1a1a65b5d0196 100644 --- a/app/services/files/base_service.rb +++ b/app/services/files/base_service.rb @@ -75,6 +75,9 @@ module Files validate_target_branch if @source_project != project + # Make sure we have the source_branch in target project, + # and use source_branch as target_branch directly to avoid + # unnecessary source branch in target project. @project.fetch_ref(@source_project, @target_branch, @source_branch) end end