Skip to content
Snippets Groups Projects
Commit 72250a4e authored by Gabriel Mazetto's avatar Gabriel Mazetto
Browse files

Enable automatic hashed storage for new projects by application settings

parent 9e6fa996
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -116,6 +116,7 @@ module ApplicationSettingsHelper
:email_author_in_body,
:enabled_git_access_protocol,
:gravatar_enabled,
:hashed_storage_enabled,
:help_page_hide_commercial_content,
:help_page_support_url,
:help_page_text,
Loading
Loading
Loading
Loading
@@ -24,6 +24,7 @@ class Project < ActiveRecord::Base
 
NUMBER_OF_PERMITTED_BOARDS = 1
UNKNOWN_IMPORT_URL = 'http://unknown.git'.freeze
LATEST_STORAGE_VERSION = 1
 
cache_markdown_field :description, pipeline: :description
 
Loading
Loading
@@ -1428,6 +1429,9 @@ class Project < ActiveRecord::Base
 
if self.storage_version && self.storage_version >= 1
self.extend Storage::HashedProject
elsif !self.persisted? && current_application_settings.hashed_storage_enabled
self.storage_version = LATEST_STORAGE_VERSION
self.extend Storage::HashedProject
else
self.extend Storage::LegacyProject
end
Loading
Loading
Loading
Loading
@@ -492,6 +492,16 @@
 
%fieldset
%legend Repository Storage
.form-group
.col-sm-offset-2.col-sm-10
.checkbox
= f.label :hashed_storage_enabled do
= f.check_box :hashed_storage_enabled
Create new projects using hashed storage paths
.help-block
Enable immutable, hash based paths and repository names to store repositories on disk. This prevents
repositories from having to be moved or renamed when the Project URL changes and may improve disk I/O performance.
%em (EXPERIMENTAL)
.form-group
= f.label :repository_storages, 'Storage paths for new projects', class: 'control-label col-sm-2'
.col-sm-10
Loading
Loading
@@ -501,6 +511,7 @@
= succeed "." do
= link_to "repository storages documentation", help_page_path("administration/repository_storages")
 
%fieldset
%legend Repository Checks
.form-group
Loading
Loading
# See http://doc.gitlab.com/ce/development/migration_style_guide.html
# for more information on how to write migrations for GitLab.
class AddHashedStorageToSettings < ActiveRecord::Migration
include Gitlab::Database::MigrationHelpers
DOWNTIME = false
disable_ddl_transaction!
def up
add_column_with_default :application_settings, :hashed_storage_enabled, :boolean, default: false
end
def down
remove_columns :application_settings, :hashed_storage_enabled
end
end
Loading
Loading
@@ -128,6 +128,7 @@ ActiveRecord::Schema.define(version: 20170820100558) do
t.integer "performance_bar_allowed_group_id"
t.boolean "password_authentication_enabled"
t.boolean "project_export_enabled", default: true, null: false
t.boolean "hashed_storage_enabled", default: false, null: false
end
 
create_table "audit_events", force: :cascade do |t|
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment