diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2019-12-11 06:07:52 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2019-12-11 06:07:52 +0000 |
commit | 7b875aa3fd1645e2e881997256ba94c6cb73ab3d (patch) | |
tree | 59b1637c36624ee863e12f9e176425627ab3deb5 /app | |
parent | 9caed104bc903734d996161ba13a579f2be49d7c (diff) | |
download | gitlab-ce-7b875aa3fd1645e2e881997256ba94c6cb73ab3d.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
4 files changed, 33 insertions, 14 deletions
diff --git a/app/models/project.rb b/app/models/project.rb index 88b66423e59..1cf69bf8403 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -1577,7 +1577,9 @@ class Project < ApplicationRecord end def wiki - @wiki ||= ProjectWiki.new(self, self.owner) + strong_memoize(:wiki) do + ProjectWiki.new(self, self.owner) + end end def jira_tracker_active? diff --git a/app/services/projects/hashed_storage/base_repository_service.rb b/app/services/projects/hashed_storage/base_repository_service.rb index 8b1bcaf17b7..09de8d9f0da 100644 --- a/app/services/projects/hashed_storage/base_repository_service.rb +++ b/app/services/projects/hashed_storage/base_repository_service.rb @@ -8,13 +8,12 @@ module Projects class BaseRepositoryService < BaseService include Gitlab::ShellAdapter - attr_reader :old_disk_path, :new_disk_path, :old_wiki_disk_path, :old_storage_version, :logger, :move_wiki + attr_reader :old_disk_path, :new_disk_path, :old_storage_version, :logger, :move_wiki def initialize(project:, old_disk_path:, logger: nil) @project = project @logger = logger || Gitlab::AppLogger @old_disk_path = old_disk_path - @old_wiki_disk_path = "#{old_disk_path}.wiki" @move_wiki = has_wiki? end @@ -44,9 +43,21 @@ module Projects gitlab_shell.mv_repository(project.repository_storage, from_name, to_name) end + def move_repositories + result = move_repository(old_disk_path, new_disk_path) + project.reload_repository! + + if move_wiki + result &&= move_repository(old_wiki_disk_path, new_wiki_disk_path) + project.clear_memoization(:wiki) + end + + result + end + def rollback_folder_move move_repository(new_disk_path, old_disk_path) - move_repository("#{new_disk_path}.wiki", old_wiki_disk_path) + move_repository(new_wiki_disk_path, old_wiki_disk_path) end def try_to_set_repository_read_only! @@ -58,6 +69,20 @@ module Projects raise RepositoryInUseError, migration_error end end + + def wiki_path_suffix + @wiki_path_suffix ||= Gitlab::GlRepository::WIKI.path_suffix + end + + def old_wiki_disk_path + @old_wiki_disk_path ||= "#{old_disk_path}#{wiki_path_suffix}" + end + + def new_wiki_disk_path + @new_wiki_disk_path ||= "#{new_disk_path}#{wiki_path_suffix}" + end end end end + +Projects::HashedStorage::BaseRepositoryService.prepend_if_ee('EE::Projects::HashedStorage::BaseRepositoryService') diff --git a/app/services/projects/hashed_storage/migrate_repository_service.rb b/app/services/projects/hashed_storage/migrate_repository_service.rb index 0a0bd90cd20..fd62ac37d27 100644 --- a/app/services/projects/hashed_storage/migrate_repository_service.rb +++ b/app/services/projects/hashed_storage/migrate_repository_service.rb @@ -11,11 +11,7 @@ module Projects @new_disk_path = project.disk_path - result = move_repository(old_disk_path, new_disk_path) - - if move_wiki - result &&= move_repository(old_wiki_disk_path, "#{new_disk_path}.wiki") - end + result = move_repositories if result project.write_repository_config diff --git a/app/services/projects/hashed_storage/rollback_repository_service.rb b/app/services/projects/hashed_storage/rollback_repository_service.rb index a705112ebe3..d6646e3765e 100644 --- a/app/services/projects/hashed_storage/rollback_repository_service.rb +++ b/app/services/projects/hashed_storage/rollback_repository_service.rb @@ -11,11 +11,7 @@ module Projects @new_disk_path = project.disk_path - result = move_repository(old_disk_path, new_disk_path) - - if move_wiki - result &&= move_repository(old_wiki_disk_path, "#{new_disk_path}.wiki") - end + result = move_repositories if result project.write_repository_config |