3c6a4d6363
If a merge request was created with a branch name that also matched a tag name, we'd generate a comparison to or from the tag respectively, rather than the branch. Merging would still use the branch, of course. To avoid this, ensure that when we get the branch heads, we prepend the reference prefix for branches, which will ensure that we generate the correct comparison.
18 lines
655 B
Ruby
18 lines
655 B
Ruby
require 'securerandom'
|
|
|
|
# Compare 2 refs for one repo or between repositories
|
|
# and return Gitlab::Git::Compare object that responds to commits and diffs
|
|
class CompareService
|
|
attr_reader :start_project, :start_ref_name
|
|
|
|
def initialize(new_start_project, new_start_ref_name)
|
|
@start_project = new_start_project
|
|
@start_ref_name = new_start_ref_name
|
|
end
|
|
|
|
def execute(target_project, target_ref, straight: false)
|
|
raw_compare = target_project.repository.compare_source_branch(target_ref, start_project.repository, start_ref_name, straight: straight)
|
|
|
|
Compare.new(raw_compare, target_project, straight: straight) if raw_compare
|
|
end
|
|
end
|