summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorDouglas Barbosa Alexandre <dbalexandre@gmail.com>2017-12-21 13:58:36 -0200
committerDouglas Barbosa Alexandre <dbalexandre@gmail.com>2018-01-03 16:13:32 -0200
commit93eba91df9af083ea80b3b8ab01986efdeec43a0 (patch)
tree2ed14dfb2c0e4ff038ba304c59ed470d91d4aa3a /app
parent9d575acc5b46be7e0b76ccc763997412cd278ef0 (diff)
downloadgitlab-ce-93eba91df9af083ea80b3b8ab01986efdeec43a0.tar.gz
Refactoring Project#write_repository_config
Diffstat (limited to 'app')
-rw-r--r--app/models/namespace.rb2
-rw-r--r--app/models/project.rb15
-rw-r--r--app/services/projects/create_service.rb6
-rw-r--r--app/services/projects/hashed_storage/migrate_repository_service.rb9
-rw-r--r--app/services/projects/transfer_service.rb5
5 files changed, 12 insertions, 25 deletions
diff --git a/app/models/namespace.rb b/app/models/namespace.rb
index d983b2f106b..efbfc607040 100644
--- a/app/models/namespace.rb
+++ b/app/models/namespace.rb
@@ -272,7 +272,7 @@ class Namespace < ActiveRecord::Base
def write_projects_full_path_config
all_projects.each do |project|
project.expires_full_path_cache # we need to clear cache to validate renames correctly
- project.write_repository_config(:fullpath, project.full_path)
+ project.write_repository_config
end
end
end
diff --git a/app/models/project.rb b/app/models/project.rb
index 47ca62aa5bb..9c0bbf697e2 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -1420,10 +1420,7 @@ 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)
+ write_repository_config
path_before_change = previous_changes['path'].first
@@ -1437,11 +1434,13 @@ class Project < ActiveRecord::Base
Gitlab::PagesTransfer.new.rename_project(path_before_change, self.path, namespace.full_path)
end
- def write_repository_config(key, value, prefix: :gitlab)
- key = [prefix, key].compact.join('.')
- repo.config[key] = value
+ def write_repository_config(gl_full_path: full_path)
+ # 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.
+ repo.config['gitlab.fullpath'] = gl_full_path
rescue Gitlab::Git::Repository::NoRepository => e
- Rails.logger.error("Error writing key #{key} to .git/config for project #{full_path} (#{id}): #{e.message}.")
+ Rails.logger.error("Error writing to .git/config for project #{full_path} (#{id}): #{e.message}.")
nil
end
diff --git a/app/services/projects/create_service.rb b/app/services/projects/create_service.rb
index 24ae50f8dc4..01838ec6b5d 100644
--- a/app/services/projects/create_service.rb
+++ b/app/services/projects/create_service.rb
@@ -88,11 +88,7 @@ module Projects
log_info("#{@project.owner.name} created a new project \"#{@project.name_with_namespace}\"")
unless @project.gitlab_project_import?
- # 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.
- @project.write_repository_config(:fullpath, @project.full_path)
-
+ @project.write_repository_config
@project.create_wiki unless skip_wiki?
create_services_from_active_templates(@project)
diff --git a/app/services/projects/hashed_storage/migrate_repository_service.rb b/app/services/projects/hashed_storage/migrate_repository_service.rb
index c076ce06278..b6763c9436f 100644
--- a/app/services/projects/hashed_storage/migrate_repository_service.rb
+++ b/app/services/projects/hashed_storage/migrate_repository_service.rb
@@ -30,6 +30,8 @@ module Projects
unless result
rollback_folder_move
project.storage_version = nil
+ else
+ project.write_repository_config
end
project.repository_read_only = false
@@ -39,13 +41,6 @@ module Projects
yield
end
- # 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.
- if result
- project.write_repository_config(:fullpath, project.full_path)
- end
-
result
end
diff --git a/app/services/projects/transfer_service.rb b/app/services/projects/transfer_service.rb
index e742df5f696..14cf9f82bdb 100644
--- a/app/services/projects/transfer_service.rb
+++ b/app/services/projects/transfer_service.rb
@@ -101,10 +101,7 @@ module Projects
end
def write_repository_config(full_path)
- # 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.
- project.write_repository_config(:fullpath, full_path)
+ project.write_repository_config(:gl_fullpath, full_path)
end
def refresh_permissions