diff options
author | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2018-09-21 13:58:45 -0300 |
---|---|---|
committer | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2018-09-21 14:29:59 -0300 |
commit | 951144536a7e87f66564eb8e85e7aa3dc1b1e748 (patch) | |
tree | ed966230b60090218a70cbd8b2a4070782c38cc8 | |
parent | 8f191590447d8e8aa375f1c1104540db5473ce51 (diff) | |
download | gitlab-ce-951144536a7e87f66564eb8e85e7aa3dc1b1e748.tar.gz |
Doesn't synchronize default branch for push mirrors
We should not synchronize the source repository with
the target root ref while updating a push mirror.
-rw-r--r-- | app/models/project.rb | 6 | ||||
-rw-r--r-- | app/models/repository.rb | 1 | ||||
-rw-r--r-- | app/services/projects/update_remote_mirror_service.rb | 1 | ||||
-rw-r--r-- | spec/models/project_spec.rb | 34 | ||||
-rw-r--r-- | spec/services/projects/update_remote_mirror_service_spec.rb | 30 |
5 files changed, 0 insertions, 72 deletions
diff --git a/app/models/project.rb b/app/models/project.rb index 9e4c7f7a2d0..73260cc7885 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -2076,12 +2076,6 @@ class Project < ActiveRecord::Base auto_cancel_pending_pipelines == 'enabled' end - # Update the default branch querying the remote to determine its HEAD - def update_root_ref(remote_name) - root_ref = repository.find_remote_root_ref(remote_name) - change_head(root_ref) if root_ref.present? && root_ref != default_branch - end - private # rubocop: disable CodeReuse/ServiceClass diff --git a/app/models/repository.rb b/app/models/repository.rb index ad65881ff43..12fbf7d5d1d 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -24,7 +24,6 @@ class Repository delegate :ref_name_for_sha, to: :raw_repository delegate :bundle_to_disk, to: :raw_repository - delegate :find_remote_root_ref, to: :raw_repository CreateTreeError = Class.new(StandardError) diff --git a/app/services/projects/update_remote_mirror_service.rb b/app/services/projects/update_remote_mirror_service.rb index 85b9eb02803..9d0877d1ab2 100644 --- a/app/services/projects/update_remote_mirror_service.rb +++ b/app/services/projects/update_remote_mirror_service.rb @@ -12,7 +12,6 @@ module Projects begin remote_mirror.ensure_remote! repository.fetch_remote(remote_mirror.remote_name, no_tags: true) - project.update_root_ref(remote_mirror.remote_name) opts = {} if remote_mirror.only_protected_branches? diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 909012b7789..3a285735682 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -3983,40 +3983,6 @@ describe Project do end end - describe '#update_root_ref' do - let(:project) { create(:project, :repository) } - - it 'updates the default branch when HEAD has changed' do - stub_find_remote_root_ref(project, ref: 'feature') - - expect { project.update_root_ref('origin') } - .to change { project.default_branch } - .from('master') - .to('feature') - end - - it 'does not update the default branch when HEAD does not change' do - stub_find_remote_root_ref(project, ref: 'master') - - expect { project.update_root_ref('origin') } - .not_to change { project.default_branch } - end - - it 'does not update the default branch when HEAD does not exist' do - stub_find_remote_root_ref(project, ref: 'foo') - - expect { project.update_root_ref('origin') } - .not_to change { project.default_branch } - end - - def stub_find_remote_root_ref(project, ref:) - allow(project.repository) - .to receive(:find_remote_root_ref) - .with('origin') - .and_return(ref) - end - end - def rugged_config Gitlab::GitalyClient::StorageSettings.allow_disk_access do project.repository.rugged.config diff --git a/spec/services/projects/update_remote_mirror_service_spec.rb b/spec/services/projects/update_remote_mirror_service_spec.rb index 56a36432462..cd903bfe8a5 100644 --- a/spec/services/projects/update_remote_mirror_service_spec.rb +++ b/spec/services/projects/update_remote_mirror_service_spec.rb @@ -17,7 +17,6 @@ describe Projects::UpdateRemoteMirrorService do it "ensures the remote exists" do stub_fetch_remote(project, remote_name: remote_name) - stub_find_remote_root_ref(project, remote_name: remote_name) expect(remote_mirror).to receive(:ensure_remote!) @@ -25,8 +24,6 @@ describe Projects::UpdateRemoteMirrorService do end it "fetches the remote repository" do - stub_find_remote_root_ref(project, remote_name: remote_name) - expect(project.repository) .to receive(:fetch_remote) .with(remote_mirror.remote_name, no_tags: true) @@ -34,26 +31,8 @@ describe Projects::UpdateRemoteMirrorService do service.execute(remote_mirror) end - it "updates the default branch when HEAD has changed" do - stub_fetch_remote(project, remote_name: remote_name) - stub_find_remote_root_ref(project, remote_name: remote_name, ref: "existing-branch") - - expect { service.execute(remote_mirror) } - .to change { project.default_branch } - .from("master") - .to("existing-branch") - end - - it "does not update the default branch when HEAD does not change" do - stub_fetch_remote(project, remote_name: remote_name) - stub_find_remote_root_ref(project, remote_name: remote_name, ref: "master") - - expect { service.execute(remote_mirror) }.not_to change { project.default_branch } - end - it "returns success when updated succeeds" do stub_fetch_remote(project, remote_name: remote_name) - stub_find_remote_root_ref(project, remote_name: remote_name) result = service.execute(remote_mirror) @@ -63,7 +42,6 @@ describe Projects::UpdateRemoteMirrorService do context 'when syncing all branches' do it "push all the branches the first time" do stub_fetch_remote(project, remote_name: remote_name) - stub_find_remote_root_ref(project, remote_name: remote_name) expect(remote_mirror).to receive(:update_repository).with({}) @@ -74,7 +52,6 @@ describe Projects::UpdateRemoteMirrorService do context 'when only syncing protected branches' do it "sync updated protected branches" do stub_fetch_remote(project, remote_name: remote_name) - stub_find_remote_root_ref(project, remote_name: remote_name) protected_branch = create_protected_branch(project) remote_mirror.only_protected_branches = true @@ -92,13 +69,6 @@ describe Projects::UpdateRemoteMirrorService do end end - def stub_find_remote_root_ref(project, ref: 'master', remote_name:) - allow(project.repository) - .to receive(:find_remote_root_ref) - .with(remote_name) - .and_return(ref) - end - def stub_fetch_remote(project, remote_name:) allow(project.repository) .to receive(:fetch_remote) |