Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-12-11 09:07:52 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2019-12-11 09:07:52 +0300
commit7b875aa3fd1645e2e881997256ba94c6cb73ab3d (patch)
tree59b1637c36624ee863e12f9e176425627ab3deb5 /app
parent9caed104bc903734d996161ba13a579f2be49d7c (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
-rw-r--r--app/models/project.rb4
-rw-r--r--app/services/projects/hashed_storage/base_repository_service.rb31
-rw-r--r--app/services/projects/hashed_storage/migrate_repository_service.rb6
-rw-r--r--app/services/projects/hashed_storage/rollback_repository_service.rb6
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