Commit 5d3b7565 authored by Nick Thomas's avatar Nick Thomas

Respect the configured git path for imported gitlab-shell operations

parent d64d1566
...@@ -86,14 +86,16 @@ module Gitlab ...@@ -86,14 +86,16 @@ module Gitlab
# This is a workaround for Geo until we can ship git 2.16 # This is a workaround for Geo until we can ship git 2.16
# See https://gitlab.com/gitlab-org/gitlab-ee/issues/5214 # See https://gitlab.com/gitlab-org/gitlab-ee/issues/5214
def git_fetch_binary def git_fetch_binary
return 'git' unless ENV['USE_SYSTEM_GIT_FOR_FETCH'] == "1" if ENV['USE_SYSTEM_GIT_FOR_FETCH'] == '1'
'/usr/bin/git'
'/usr/bin/git' else
Gitlab.config.git.bin_path
end
end end
def push_branches(remote_name, timeout, force, branch_names) def push_branches(remote_name, timeout, force, branch_names)
logger.info "Pushing branches from #{repository_absolute_path} to remote #{remote_name}: #{branch_names}" logger.info "Pushing branches from #{repository_absolute_path} to remote #{remote_name}: #{branch_names}"
cmd = %w(git push) cmd = %W(#{Gitlab.config.git.bin_path} push)
cmd << '--force' if force cmd << '--force' if force
cmd += %W(-- #{remote_name}).concat(branch_names) cmd += %W(-- #{remote_name}).concat(branch_names)
...@@ -110,7 +112,7 @@ module Gitlab ...@@ -110,7 +112,7 @@ module Gitlab
branches = branch_names.map { |branch_name| ":#{branch_name}" } branches = branch_names.map { |branch_name| ":#{branch_name}" }
logger.info "Pushing deleted branches from #{repository_absolute_path} to remote #{remote_name}: #{branch_names}" logger.info "Pushing deleted branches from #{repository_absolute_path} to remote #{remote_name}: #{branch_names}"
cmd = %W(git push -- #{remote_name}).concat(branches) cmd = %W(#{Gitlab.config.git.bin_path} push -- #{remote_name}).concat(branches)
success = run(cmd, repository_absolute_path) success = run(cmd, repository_absolute_path)
...@@ -151,7 +153,7 @@ module Gitlab ...@@ -151,7 +153,7 @@ module Gitlab
end end
def remove_origin_in_repo def remove_origin_in_repo
cmd = %w(git remote rm origin) cmd = %W(#{Gitlab.config.git.bin_path} remote rm origin)
run(cmd, repository_absolute_path) run(cmd, repository_absolute_path)
end end
...@@ -231,7 +233,7 @@ module Gitlab ...@@ -231,7 +233,7 @@ module Gitlab
masked_source = mask_password_in_url(source) masked_source = mask_password_in_url(source)
logger.info "Importing project from <#{masked_source}> to <#{repository_absolute_path}>." logger.info "Importing project from <#{masked_source}> to <#{repository_absolute_path}>."
cmd = %W(git clone --bare -- #{source} #{repository_absolute_path}) cmd = %W(#{Gitlab.config.git.bin_path} clone --bare -- #{source} #{repository_absolute_path})
success = run_with_timeout(cmd, timeout, nil) success = run_with_timeout(cmd, timeout, nil)
...@@ -274,7 +276,7 @@ module Gitlab ...@@ -274,7 +276,7 @@ module Gitlab
FileUtils.mkdir_p(File.dirname(to_path), mode: 0770) FileUtils.mkdir_p(File.dirname(to_path), mode: 0770)
logger.info "Forking repository from <#{from_path}> to <#{to_path}>." logger.info "Forking repository from <#{from_path}> to <#{to_path}>."
cmd = %W(git clone --bare --no-local -- #{from_path} #{to_path}) cmd = %W(#{Gitlab.config.git.bin_path} clone --bare --no-local -- #{from_path} #{to_path})
run(cmd, nil) && Gitlab::Git::Repository.create_hooks(to_path, global_hooks_path) run(cmd, nil) && Gitlab::Git::Repository.create_hooks(to_path, global_hooks_path)
end end
......
...@@ -28,7 +28,7 @@ describe Gitlab::Git::GitlabProjects do ...@@ -28,7 +28,7 @@ describe Gitlab::Git::GitlabProjects do
describe '#push_branches' do describe '#push_branches' do
let(:remote_name) { 'remote-name' } let(:remote_name) { 'remote-name' }
let(:branch_name) { 'master' } let(:branch_name) { 'master' }
let(:cmd) { %W(git push -- #{remote_name} #{branch_name}) } let(:cmd) { %W(#{Gitlab.config.git.bin_path} push -- #{remote_name} #{branch_name}) }
let(:force) { false } let(:force) { false }
subject { gl_projects.push_branches(remote_name, 600, force, [branch_name]) } subject { gl_projects.push_branches(remote_name, 600, force, [branch_name]) }
...@@ -46,7 +46,7 @@ describe Gitlab::Git::GitlabProjects do ...@@ -46,7 +46,7 @@ describe Gitlab::Git::GitlabProjects do
end end
context 'with --force' do context 'with --force' do
let(:cmd) { %W(git push --force -- #{remote_name} #{branch_name}) } let(:cmd) { %W(#{Gitlab.config.git.bin_path} push --force -- #{remote_name} #{branch_name}) }
let(:force) { true } let(:force) { true }
it 'executes the command' do it 'executes the command' do
...@@ -65,7 +65,7 @@ describe Gitlab::Git::GitlabProjects do ...@@ -65,7 +65,7 @@ describe Gitlab::Git::GitlabProjects do
let(:tags) { true } let(:tags) { true }
let(:args) { { force: force, tags: tags, prune: prune }.merge(extra_args) } let(:args) { { force: force, tags: tags, prune: prune }.merge(extra_args) }
let(:extra_args) { {} } let(:extra_args) { {} }
let(:cmd) { %W(git fetch #{remote_name} --quiet --prune --tags) } let(:cmd) { %W(#{Gitlab.config.git.bin_path} fetch #{remote_name} --quiet --prune --tags) }
subject { gl_projects.fetch_remote(remote_name, 600, args) } subject { gl_projects.fetch_remote(remote_name, 600, args) }
...@@ -98,7 +98,7 @@ describe Gitlab::Git::GitlabProjects do ...@@ -98,7 +98,7 @@ describe Gitlab::Git::GitlabProjects do
context 'with --force' do context 'with --force' do
let(:force) { true } let(:force) { true }
let(:cmd) { %W(git fetch #{remote_name} --quiet --prune --force --tags) } let(:cmd) { %W(#{Gitlab.config.git.bin_path} fetch #{remote_name} --quiet --prune --force --tags) }
it 'executes the command with forced option' do it 'executes the command with forced option' do
stub_spawn(cmd, 600, tmp_repo_path, {}, success: true) stub_spawn(cmd, 600, tmp_repo_path, {}, success: true)
...@@ -109,7 +109,7 @@ describe Gitlab::Git::GitlabProjects do ...@@ -109,7 +109,7 @@ describe Gitlab::Git::GitlabProjects do
context 'with --no-tags' do context 'with --no-tags' do
let(:tags) { false } let(:tags) { false }
let(:cmd) { %W(git fetch #{remote_name} --quiet --prune --no-tags) } let(:cmd) { %W(#{Gitlab.config.git.bin_path} fetch #{remote_name} --quiet --prune --no-tags) }
it 'executes the command' do it 'executes the command' do
stub_spawn(cmd, 600, tmp_repo_path, {}, success: true) stub_spawn(cmd, 600, tmp_repo_path, {}, success: true)
...@@ -120,7 +120,7 @@ describe Gitlab::Git::GitlabProjects do ...@@ -120,7 +120,7 @@ describe Gitlab::Git::GitlabProjects do
context 'with no prune' do context 'with no prune' do
let(:prune) { false } let(:prune) { false }
let(:cmd) { %W(git fetch #{remote_name} --quiet --tags) } let(:cmd) { %W(#{Gitlab.config.git.bin_path} fetch #{remote_name} --quiet --tags) }
it 'executes the command' do it 'executes the command' do
stub_spawn(cmd, 600, tmp_repo_path, {}, success: true) stub_spawn(cmd, 600, tmp_repo_path, {}, success: true)
...@@ -179,7 +179,7 @@ describe Gitlab::Git::GitlabProjects do ...@@ -179,7 +179,7 @@ describe Gitlab::Git::GitlabProjects do
describe '#import_project' do describe '#import_project' do
let(:project) { create(:project) } let(:project) { create(:project) }
let(:import_url) { TestEnv.factory_repo_path_bare } let(:import_url) { TestEnv.factory_repo_path_bare }
let(:cmd) { %W(git clone --bare -- #{import_url} #{tmp_repo_path}) } let(:cmd) { %W(#{Gitlab.config.git.bin_path} clone --bare -- #{import_url} #{tmp_repo_path}) }
let(:timeout) { 600 } let(:timeout) { 600 }
subject { gl_projects.import_project(import_url, timeout) } subject { gl_projects.import_project(import_url, timeout) }
......
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