diff options
author | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2017-12-19 19:53:59 +0300 |
---|---|---|
committer | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2018-01-03 21:13:31 +0300 |
commit | 64fe954dcebaadd6f686f30eb4ff0be5ebcf172d (patch) | |
tree | 3fe3ac6a13ff0c9d5c722c06b06238d64712965e | |
parent | 9504a529b758b0352b9c60d67fda8b4ee2a5fec0 (diff) |
Update project full path in .git/config when renaming a repository
-rw-r--r-- | app/models/project.rb | 5 | ||||
-rw-r--r-- | spec/models/project_spec.rb | 14 | ||||
-rw-r--r-- | spec/services/projects/update_service_spec.rb | 2 |
3 files changed, 20 insertions, 1 deletions
diff --git a/app/models/project.rb b/app/models/project.rb index eac78de1ac9..1182dbda0c0 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -1420,6 +1420,11 @@ class Project < ActiveRecord::Base end def after_rename_repo + # We'd need to keep track of project full path otherwise directory tree + # created with hashed storage enabled cannot be usefully imported using + # the import rake task. + write_repository_config(:fullpath, full_path) + path_before_change = previous_changes['path'].first # We need to check if project had been rolled out to move resource to hashed storage or not and decide diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 7338e341359..10634d22b39 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -2626,6 +2626,14 @@ describe Project do project.rename_repo end end + + it 'updates project full path in .git/config' do + allow(project_storage).to receive(:rename_repo).and_return(true) + + expect(project).to receive(:write_repository_config).with(:fullpath, project.full_path) + + project.rename_repo + end end describe '#pages_path' do @@ -2781,6 +2789,12 @@ describe Project do end end end + + it 'updates project full path in .git/config' do + expect(project).to receive(:write_repository_config).with(:fullpath, project.full_path) + + project.rename_repo + end end describe '#pages_path' do diff --git a/spec/services/projects/update_service_spec.rb b/spec/services/projects/update_service_spec.rb index d887f70efae..fc6aa713d6f 100644 --- a/spec/services/projects/update_service_spec.rb +++ b/spec/services/projects/update_service_spec.rb @@ -61,7 +61,7 @@ describe Projects::UpdateService do end end - context 'When project visibility is higher than parent group' do + context 'when project visibility is higher than parent group' do let(:group) { create(:group, visibility_level: Gitlab::VisibilityLevel::INTERNAL) } before do |