summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Mazetto <brodock@gmail.com>2017-08-17 17:39:18 +0200
committerGabriel Mazetto <brodock@gmail.com>2017-08-22 06:33:20 +0200
commit02737b8508eb3cce6d8c5ece1f2ffb4772c609a5 (patch)
treeb0e74a6e8e9b1322090c051da978633fb2019908
parentd17a7be8308b06b7077a7cffc5d258148ee08c87 (diff)
downloadgitlab-ce-02737b8508eb3cce6d8c5ece1f2ffb4772c609a5.tar.gz
Use `@hashed` prefix for hashed paths on disk, to avoid collision with existing ones
-rw-r--r--app/models/storage/hashed_project.rb6
-rw-r--r--spec/models/project_spec.rb6
2 files changed, 7 insertions, 5 deletions
diff --git a/app/models/storage/hashed_project.rb b/app/models/storage/hashed_project.rb
index 1a10e0e59a8..fae1b64961a 100644
--- a/app/models/storage/hashed_project.rb
+++ b/app/models/storage/hashed_project.rb
@@ -1,7 +1,9 @@
module Storage
class HashedProject
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)
@project = project
@@ -11,7 +13,7 @@ module Storage
#
# @return [String] directory where repository is stored
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
# Disk path is used to build repository and project's wiki path on disk
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index 6b646393696..c7d2f2063af 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -2413,13 +2413,13 @@ describe Project do
describe '#base_dir' 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
describe '#disk_path' 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)
end
@@ -2427,7 +2427,7 @@ describe Project do
describe '#ensure_storage_path_exists' 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
end