ee-specific-check checked against the wrong base when there's no CE branch
This is found in https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/6470#note_87465004
The offending code was:
def find_backward_ce_head(ce_fetch_head, ce_fetch_base, ce_merge_base)
if ce_fetch_head.start_with?('canonical-ce') || # No specific CE branch
ce_fetch_base == ce_merge_base # Up-to-date, no rebase needed
say("CE is up-to-date, using merge-base directly")
run_git_command("merge-base #{ce_merge_base} HEAD")
else
# good here
end
end
Here it was using run_git_command("merge-base #{ce_merge_base} HEAD")
but it should probably just ce_merge_base
. Two conditions are not enough here.
After https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/6504 the offending code becomes:
def find_backward_ce_head(ce_fetch_head, ce_fetch_base, ce_merge_base)
if ce_fetch_head.start_with?('canonical-ce') # No specific CE branch
say("No CE branch found, using merge base directly")
run_git_command("merge-base #{ce_merge_base} HEAD")
elsif ce_fetch_base == ce_merge_base # Up-to-date, no rebase needed
# good here
else
# good here
end
end
Edited by Lin Jen-Shin