Use `@hashed` prefix for hashed paths on disk, to avoid collision with existing ones
This commit is contained in:
parent
d17a7be830
commit
02737b8508
|
@ -1,7 +1,9 @@
|
||||||
module Storage
|
module Storage
|
||||||
class HashedProject
|
class HashedProject
|
||||||
attr_accessor :project
|
attr_accessor :project
|
||||||
delegate :namespace, :gitlab_shell, :repository_storage_path, to: :project
|
delegate :gitlab_shell, :repository_storage_path, to: :project
|
||||||
|
|
||||||
|
ROOT_PATH_PREFIX = '@hashed'.freeze
|
||||||
|
|
||||||
def initialize(project)
|
def initialize(project)
|
||||||
@project = project
|
@project = project
|
||||||
|
@ -11,7 +13,7 @@ module Storage
|
||||||
#
|
#
|
||||||
# @return [String] directory where repository is stored
|
# @return [String] directory where repository is stored
|
||||||
def base_dir
|
def base_dir
|
||||||
"#{disk_hash[0..1]}/#{disk_hash[2..3]}" if disk_hash
|
"#{ROOT_PATH_PREFIX}/#{disk_hash[0..1]}/#{disk_hash[2..3]}" if disk_hash
|
||||||
end
|
end
|
||||||
|
|
||||||
# Disk path is used to build repository and project's wiki path on disk
|
# Disk path is used to build repository and project's wiki path on disk
|
||||||
|
|
|
@ -2413,13 +2413,13 @@ describe Project do
|
||||||
|
|
||||||
describe '#base_dir' do
|
describe '#base_dir' do
|
||||||
it 'returns base_dir based on hash of project id' do
|
it 'returns base_dir based on hash of project id' do
|
||||||
expect(project.base_dir).to eq('6b/86')
|
expect(project.base_dir).to eq('@hashed/6b/86')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#disk_path' do
|
describe '#disk_path' do
|
||||||
it 'returns disk_path based on hash of project id' do
|
it 'returns disk_path based on hash of project id' do
|
||||||
hashed_path = '6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b'
|
hashed_path = '@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b'
|
||||||
|
|
||||||
expect(project.disk_path).to eq(hashed_path)
|
expect(project.disk_path).to eq(hashed_path)
|
||||||
end
|
end
|
||||||
|
@ -2427,7 +2427,7 @@ describe Project do
|
||||||
|
|
||||||
describe '#ensure_storage_path_exists' do
|
describe '#ensure_storage_path_exists' do
|
||||||
it 'delegates to gitlab_shell to ensure namespace is created' do
|
it 'delegates to gitlab_shell to ensure namespace is created' do
|
||||||
expect(gitlab_shell).to receive(:add_namespace).with(project.repository_storage_path, '6b/86')
|
expect(gitlab_shell).to receive(:add_namespace).with(project.repository_storage_path, '@hashed/6b/86')
|
||||||
|
|
||||||
project.ensure_storage_path_exists
|
project.ensure_storage_path_exists
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue