Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
gpt
large_projects
gitlabhq1
Commits
02737b85
Commit
02737b85
authored
7 years ago
by
Gabriel Mazetto
Browse files
Options
Download
Email Patches
Plain Diff
Use `@hashed` prefix for hashed paths on disk, to avoid collision with existing ones
parent
d17a7be8
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
7 additions
and
5 deletions
+7
-5
app/models/storage/hashed_project.rb
app/models/storage/hashed_project.rb
+4
-2
spec/models/project_spec.rb
spec/models/project_spec.rb
+3
-3
No files found.
app/models/storage/hashed_project.rb
View file @
02737b85
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
...
...
This diff is collapsed.
Click to expand it.
spec/models/project_spec.rb
View file @
02737b85
...
...
@@ -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
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment