Skip to content

Commit 36adc5d

Browse files
author
root
committed
Treat settings as string, make settings consistent on first migration
1 parent e944e6a commit 36adc5d

File tree

2 files changed

+113
-94
lines changed

2 files changed

+113
-94
lines changed

Diff for: db/migrate/20130807223227_migrate_parameters.rb

+85-66
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,71 @@
11
class MigrateParameters < ActiveRecord::Migration
2-
def self.up
3-
new_setting = {}
42

3+
def self.up
54
## Prepare default values in case we install Redmine from scratch
6-
# Legacy settings
7-
new_setting[:gitolite_user] = 'git'
8-
new_setting[:gitolite_server_port] = '22'
9-
new_setting[:gitolite_ssh_private_key] = File.join(Rails.root, 'plugins', 'redmine_git_hosting', 'ssh_keys', 'redmine_gitolite_admin_id_rsa').to_s
10-
new_setting[:gitolite_ssh_public_key] = File.join(Rails.root, 'plugins', 'redmine_git_hosting', 'ssh_keys', 'redmine_gitolite_admin_id_rsa.pub').to_s
11-
12-
new_setting[:gitolite_global_storage_dir] = 'repositories/'
13-
new_setting[:gitolite_redmine_storage_dir] = ''
14-
new_setting[:gitolite_recycle_bin_dir] = 'recycle_bin/'
15-
16-
new_setting[:gitolite_temp_dir] = File.join(Rails.root, 'tmp', 'redmine_git_hosting').to_s
17-
new_setting[:gitolite_script_dir] = './'
18-
new_setting[:gitolite_timeout] = 10
19-
new_setting[:gitolite_config_file] = 'gitolite.conf'
20-
new_setting[:gitolite_config_has_admin_key] = true
21-
new_setting[:gitolite_recycle_bin_expiration_time] = 24.0
22-
23-
new_setting[:gitolite_hooks_debug] = true
24-
new_setting[:gitolite_force_hooks_update] = true
25-
new_setting[:gitolite_hooks_are_asynchronous] = false
26-
27-
new_setting[:gitolite_cache_max_time] = 86400
28-
new_setting[:gitolite_cache_max_size] = 16
29-
new_setting[:gitolite_cache_max_elements] = 2000
30-
31-
new_setting[:ssh_server_domain] = RedmineGitolite::Config.my_root_url
32-
new_setting[:http_server_domain] = RedmineGitolite::Config.my_root_url
33-
new_setting[:https_server_domain] = ''
34-
new_setting[:http_server_subdir] = ''
35-
new_setting[:show_repositories_url] = true
36-
37-
new_setting[:gitolite_daemon_by_default] = false
38-
new_setting[:gitolite_http_by_default] = 1
39-
40-
new_setting[:all_projects_use_git] = false
41-
new_setting[:delete_git_repositories] = false
42-
new_setting[:hierarchical_organisation] = false
43-
new_setting[:unique_repo_identifier] = true
44-
45-
# New features settings
46-
new_setting[:gitolite_log_level] = 'info'
47-
new_setting[:gitolite_log_split] = false
48-
new_setting[:gitolite_resync_all] = false
49-
50-
new_setting[:gitolite_notify_by_default] = true
51-
new_setting[:gitolite_notify_global_prefix] = '[REDMINE]'
52-
new_setting[:gitolite_notify_global_sender_address] = Setting.mail_from.to_s.strip.downcase
53-
new_setting[:gitolite_notify_global_include] = []
54-
new_setting[:gitolite_notify_global_exclude] = []
55-
5+
new_setting = {
6+
# Legacy settings
7+
:gitolite_user => 'git',
8+
:gitolite_server_port => '22',
9+
:gitolite_ssh_private_key => Rails.root.join('plugins', 'redmine_git_hosting', 'ssh_keys', 'redmine_gitolite_admin_id_rsa').to_s,
10+
:gitolite_ssh_public_key => Rails.root.join('plugins', 'redmine_git_hosting', 'ssh_keys', 'redmine_gitolite_admin_id_rsa.pub').to_s,
11+
12+
:gitolite_global_storage_dir => 'repositories/',
13+
:gitolite_redmine_storage_dir => '',
14+
:gitolite_recycle_bin_dir => 'recycle_bin/',
15+
16+
:gitolite_temp_dir => Rails.root.join('tmp', 'redmine_git_hosting').to_s,
17+
:gitolite_scripts_dir => './',
18+
:gitolite_timeout => '10',
19+
:gitolite_config_file => 'gitolite.conf',
20+
:gitolite_config_has_admin_key => 'true',
21+
:gitolite_recycle_bin_expiration_time => '24.0',
22+
23+
:gitolite_hooks_debug => 'false',
24+
:gitolite_force_hooks_update => 'true',
25+
:gitolite_hooks_are_asynchronous => 'false',
26+
27+
:gitolite_cache_max_time => '86400',
28+
:gitolite_cache_max_size => '16',
29+
:gitolite_cache_max_elements => '2000',
30+
31+
:ssh_server_domain => 'localhost',
32+
:http_server_domain => 'localhost',
33+
:https_server_domain => '',
34+
:http_server_subdir => '',
35+
:show_repositories_url => 'true',
36+
37+
:gitolite_daemon_by_default => 'false',
38+
:gitolite_http_by_default => '1',
39+
40+
:all_projects_use_git => 'false',
41+
:delete_git_repositories => 'true',
42+
:hierarchical_organisation => 'true',
43+
:unique_repo_identifier => 'false',
44+
45+
# New features settings
46+
:gitolite_log_level => 'info',
47+
:gitolite_log_split => 'false',
48+
49+
:git_config_username => 'Redmine Git Hosting',
50+
:git_config_email => '[email protected]',
51+
52+
:gitolite_use_sidekiq => 'false',
53+
:init_repositories_on_create => 'false',
54+
:download_revision_enabled => 'true',
55+
:gitolite_identifier_prefix => 'redmine_',
56+
57+
:gitolite_resync_all => 'false',
58+
59+
:gitolite_notify_by_default => 'false',
60+
:gitolite_notify_global_prefix => '[REDMINE]',
61+
:gitolite_notify_global_sender_address => '[email protected]',
62+
:gitolite_notify_global_include => [],
63+
:gitolite_notify_global_exclude => [],
64+
}
5665

5766
## Grab current values and update existing settings
58-
if !Setting[:plugin_redmine_git_hosting].nil?
59-
Setting[:plugin_redmine_git_hosting].each do |key, value|
67+
if !Setting.plugin_redmine_git_hosting.nil?
68+
Setting.plugin_redmine_git_hosting.each do |key, value|
6069
case key
6170

6271
# Gitolite SSH Config
@@ -87,7 +96,7 @@ def self.up
8796
new_setting[:gitolite_temp_dir] = value
8897

8998
when 'gitScriptDir' then
90-
new_setting[:gitolite_script_dir] = value
99+
new_setting[:gitolite_scripts_dir] = value
91100

92101
when 'gitConfigFile' then
93102
new_setting[:gitolite_config_file] = value
@@ -136,14 +145,15 @@ def self.up
136145
new_setting[:show_repositories_url] = value
137146

138147
when 'gitDaemonDefault' then
139-
new_setting[:gitolite_daemon_by_default] = value
148+
if value == 1
149+
new_setting[:gitolite_daemon_by_default] = 'true'
150+
else
151+
new_setting[:gitolite_daemon_by_default] = 'false'
152+
end
140153

141154
when 'gitHttpDefault' then
142155
new_setting[:gitolite_http_by_default] = value
143156

144-
when 'gitNotifyCIADefault' then
145-
new_setting[:gitolite_notify_cia_by_default] = value
146-
147157
# Redmine Config
148158
when 'allProjectsUseGit' then
149159
new_setting[:all_projects_use_git] = value
@@ -152,19 +162,28 @@ def self.up
152162
new_setting[:delete_git_repositories] = value
153163

154164
when 'gitRepositoryHierarchy' then
155-
new_setting[:hierarchical_organisation] = value
156-
157-
when 'gitRepositoryIdentUnique' then
158-
new_setting[:unique_repo_identifier] = value
165+
if value == 'true'
166+
new_setting[:hierarchical_organisation] = 'true'
167+
new_setting[:unique_repo_identifier] = 'false'
168+
else
169+
new_setting[:hierarchical_organisation] = 'false'
170+
new_setting[:unique_repo_identifier] = 'true'
171+
end
159172

160173
end
161174
end
162175
end
163176

164-
puts "Applying configuration update"
177+
puts "Applying configuration update ..."
165178
puts YAML::dump(new_setting)
166179

167-
Setting[:plugin_redmine_git_hosting] = new_setting
168-
end
180+
begin
181+
Setting.plugin_redmine_git_hosting = new_setting
182+
rescue => e
183+
puts "Error : #{e.message}"
184+
else
185+
puts "Done!"
186+
end
169187

188+
end
170189
end

Diff for: init.rb

+28-28
Original file line numberDiff line numberDiff line change
@@ -18,67 +18,67 @@
1818
# Gitolite SSH Config
1919
:gitolite_user => 'git',
2020
:gitolite_server_port => '22',
21-
:gitolite_ssh_private_key => File.join(Rails.root, 'plugins', 'redmine_git_hosting', 'ssh_keys', 'redmine_gitolite_admin_id_rsa').to_s,
22-
:gitolite_ssh_public_key => File.join(Rails.root, 'plugins', 'redmine_git_hosting', 'ssh_keys', 'redmine_gitolite_admin_id_rsa.pub').to_s,
21+
:gitolite_ssh_private_key => Rails.root.join('plugins', 'redmine_git_hosting', 'ssh_keys', 'redmine_gitolite_admin_id_rsa').to_s,
22+
:gitolite_ssh_public_key => Rails.root.join('plugins', 'redmine_git_hosting', 'ssh_keys', 'redmine_gitolite_admin_id_rsa.pub').to_s,
2323

2424
# Gitolite Storage Config
2525
:gitolite_global_storage_dir => 'repositories/',
2626
:gitolite_redmine_storage_dir => '',
2727
:gitolite_recycle_bin_dir => 'recycle_bin/',
2828

2929
# Gitolite Config File
30-
:gitolite_config_file => 'gitolite.conf',
31-
:gitolite_config_has_admin_key => true,
32-
:gitolite_identifier_prefix => 'redmine_',
30+
:gitolite_config_file => 'gitolite.conf',
31+
:gitolite_config_has_admin_key => 'true',
32+
:gitolite_identifier_prefix => 'redmine_',
3333

3434
# Gitolite Global Config
35-
:gitolite_temp_dir => File.join(Rails.root, 'tmp', 'redmine_git_hosting').to_s,
35+
:gitolite_temp_dir => Rails.root.join('tmp', 'redmine_git_hosting').to_s,
3636
:gitolite_scripts_dir => './',
37-
:gitolite_timeout => 10,
38-
:gitolite_recycle_bin_expiration_time => 24.0,
37+
:gitolite_timeout => '10',
38+
:gitolite_recycle_bin_expiration_time => '24.0',
3939
:gitolite_log_level => 'info',
40-
:gitolite_log_split => false,
40+
:gitolite_log_split => 'false',
4141
:git_config_username => 'Redmine Git Hosting',
42-
:git_config_email => 'redmine@example.com',
42+
:git_config_email => 'redmine@example.net',
4343

4444
# Gitolite Hooks Config
45-
:gitolite_hooks_are_asynchronous => false,
46-
:gitolite_force_hooks_update => true,
47-
:gitolite_hooks_debug => false,
45+
:gitolite_hooks_are_asynchronous => 'false',
46+
:gitolite_force_hooks_update => 'true',
47+
:gitolite_hooks_debug => 'false',
4848

4949
# Gitolite Cache Config
50-
:gitolite_cache_max_time => 86400,
51-
:gitolite_cache_max_size => 16,
52-
:gitolite_cache_max_elements => 2000,
50+
:gitolite_cache_max_time => '86400',
51+
:gitolite_cache_max_size => '16',
52+
:gitolite_cache_max_elements => '2000',
5353

5454
# Gitolite Access Config
5555
:ssh_server_domain => 'localhost',
5656
:http_server_domain => 'localhost',
5757
:https_server_domain => '',
5858
:http_server_subdir => '',
59-
:show_repositories_url => true,
60-
:gitolite_daemon_by_default => false,
61-
:gitolite_http_by_default => 1,
59+
:show_repositories_url => 'true',
60+
:gitolite_daemon_by_default => 'false',
61+
:gitolite_http_by_default => '1',
6262

6363
# Redmine Config
64-
:all_projects_use_git => false,
65-
:init_repositories_on_create => false,
66-
:delete_git_repositories => true,
67-
:hierarchical_organisation => true,
68-
:unique_repo_identifier => false,
64+
:all_projects_use_git => 'false',
65+
:init_repositories_on_create => 'false',
66+
:delete_git_repositories => 'true',
67+
:hierarchical_organisation => 'true',
68+
:unique_repo_identifier => 'false',
6969

7070
# Download Revision Config
71-
:download_revision_enabled => true,
71+
:download_revision_enabled => 'true',
7272

7373
# Git Mailing List Config
74-
:gitolite_notify_by_default => true,
74+
:gitolite_notify_by_default => 'false',
7575
:gitolite_notify_global_prefix => '[REDMINE]',
76-
:gitolite_notify_global_sender_address => 'redmine@example.com',
76+
:gitolite_notify_global_sender_address => 'redmine@example.net',
7777
:gitolite_notify_global_include => [],
7878
:gitolite_notify_global_exclude => [],
7979

8080
# Sidekiq Config
81-
:gitolite_use_sidekiq => false,
81+
:gitolite_use_sidekiq => 'false',
8282
}
8383
})
8484

0 commit comments

Comments
 (0)