Commit 77e89893 authored by Nick Thomas's avatar Nick Thomas

Merge branch 'sh-fix-issue-50843' into 'master'

Fix PostReceive failing for project mirrors missing local branch

Closes gitlab-ce#50843

See merge request gitlab-org/gitlab-ee!8495
parents 9395c4a1 733db645
...@@ -42,7 +42,7 @@ module EE ...@@ -42,7 +42,7 @@ module EE
branch_commit = commit("refs/heads/#{branch_name}") branch_commit = commit("refs/heads/#{branch_name}")
upstream_commit = commit("refs/remotes/#{MIRROR_REMOTE}/#{branch_name}") upstream_commit = commit("refs/remotes/#{MIRROR_REMOTE}/#{branch_name}")
if upstream_commit if branch_commit && upstream_commit
!raw_repository.ancestor?(branch_commit.id, upstream_commit.id) !raw_repository.ancestor?(branch_commit.id, upstream_commit.id)
else else
false false
...@@ -53,7 +53,7 @@ module EE ...@@ -53,7 +53,7 @@ module EE
branch_commit = commit("refs/heads/#{branch_name}") branch_commit = commit("refs/heads/#{branch_name}")
upstream_commit = commit("refs/remotes/#{remote_ref}/#{branch_name}") upstream_commit = commit("refs/remotes/#{remote_ref}/#{branch_name}")
if upstream_commit if branch_commit && upstream_commit
!raw_repository.ancestor?(upstream_commit.id, branch_commit.id) !raw_repository.ancestor?(upstream_commit.id, branch_commit.id)
else else
false false
...@@ -64,7 +64,7 @@ module EE ...@@ -64,7 +64,7 @@ module EE
branch_commit = commit("refs/heads/#{branch_name}") branch_commit = commit("refs/heads/#{branch_name}")
upstream_commit = commit("refs/remotes/#{MIRROR_REMOTE}/#{branch_name}") upstream_commit = commit("refs/remotes/#{MIRROR_REMOTE}/#{branch_name}")
if upstream_commit if branch_commit && upstream_commit
ancestor?(branch_commit.id, upstream_commit.id) ancestor?(branch_commit.id, upstream_commit.id)
else else
false false
......
---
title: Fix PostReceive failing for project mirrors missing local branch
merge_request: 8495
author:
type: fixed
require 'spec_helper'
describe GitPushService do
include RepoHelpers
set(:user) { create(:user) }
let(:blankrev) { Gitlab::Git::BLANK_SHA }
let(:oldrev) { sample_commit.parent_id }
let(:newrev) { sample_commit.id }
let(:ref) { 'refs/heads/master' }
context 'with pull project' do
set(:project) { create(:project, :repository, :mirror) }
subject do
described_class.new(project, user, oldrev: oldrev, newrev: newrev, ref: ref)
end
context 'deleted branch' do
let(:newrev) { blankrev }
it 'handles when remote branch exists' do
allow(project.repository).to receive(:commit).and_call_original
allow(project.repository).to receive(:commit).with("master").and_return(nil)
expect(project.repository).to receive(:commit).with("refs/remotes/upstream/master").and_return(sample_commit)
subject.execute
end
end
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment