diff options
| author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-06-11 02:12:06 -0700 |
|---|---|---|
| committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-06-11 02:12:06 -0700 |
| commit | 5cd988249fa7f8495111523a17bb2d28cfa7177a (patch) | |
| tree | 183da13e8b9d5790d57bc9dabda867b7b070f7ea /lib | |
| parent | 9a0e7c0e85c4c3892c9a477be98f68c0234599b7 (diff) | |
| parent | 5f4fea17ad42d24f069d19d36853b7ea61ee66c8 (diff) | |
| download | gitlab-ce-5cd988249fa7f8495111523a17bb2d28cfa7177a.tar.gz | |
Merge pull request #4140 from amacarthur/restore-fixes-clean
fixes for gitlab restore with non-standard backup and repo dirs
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/backup/repository.rb | 2 | ||||
| -rw-r--r-- | lib/tasks/gitlab/backup.rake | 22 | ||||
| -rw-r--r-- | lib/tasks/gitlab/shell.rake | 10 |
3 files changed, 22 insertions, 12 deletions
diff --git a/lib/backup/repository.rb b/lib/backup/repository.rb index 62a510f2acc..c5e3d049fd7 100644 --- a/lib/backup/repository.rb +++ b/lib/backup/repository.rb @@ -71,7 +71,7 @@ module Backup print 'Put GitLab hooks in repositories dirs'.yellow gitlab_shell_user_home = File.expand_path("~#{Gitlab.config.gitlab_shell.ssh_user}") - if system("#{gitlab_shell_user_home}/gitlab-shell/support/rewrite-hooks.sh") + if system("#{gitlab_shell_user_home}/gitlab-shell/support/rewrite-hooks.sh #{Gitlab.config.gitlab_shell.repos_path}") puts " [DONE]".green else puts " [FAILED]".red diff --git a/lib/tasks/gitlab/backup.rake b/lib/tasks/gitlab/backup.rake index 65d99d1aea3..d071938acb5 100644 --- a/lib/tasks/gitlab/backup.rake +++ b/lib/tasks/gitlab/backup.rake @@ -90,13 +90,21 @@ namespace :gitlab do settings = YAML.load_file("backup_information.yml") ENV["VERSION"] = "#{settings[:db_version]}" if settings[:db_version].to_i > 0 - # restoring mismatching backups can lead to unexpected problems - if settings[:gitlab_version] != %x{git rev-parse HEAD}.gsub(/\n/,"") - puts "GitLab version mismatch:".red - puts " Your current HEAD differs from the HEAD in the backup!".red - puts " Please switch to the following revision and try again:".red - puts " revision: #{settings[:gitlab_version]}".red - exit 1 + # backups directory is not always sub of Rails root and able to execute the git rev-parse below + begin + Dir.chdir(Rails.root) + + # restoring mismatching backups can lead to unexpected problems + if settings[:gitlab_version] != %x{git rev-parse HEAD}.gsub(/\n/, "") + puts "GitLab version mismatch:".red + puts " Your current HEAD differs from the HEAD in the backup!".red + puts " Please switch to the following revision and try again:".red + puts " revision: #{settings[:gitlab_version]}".red + exit 1 + end + ensure + # chdir back to original intended dir + Dir.chdir(Gitlab.config.backup.path) end Rake::Task["gitlab:backup:db:restore"].invoke diff --git a/lib/tasks/gitlab/shell.rake b/lib/tasks/gitlab/shell.rake index ec5451dd47c..11d4eacaa69 100644 --- a/lib/tasks/gitlab/shell.rake +++ b/lib/tasks/gitlab/shell.rake @@ -26,10 +26,12 @@ namespace :gitlab do warn_user_is_not_gitlab gitlab_shell_authorized_keys = File.join(File.expand_path("~#{Gitlab.config.gitlab_shell.ssh_user}"),'.ssh/authorized_keys') - puts "This will rebuild an authorized_keys file." - puts "You will lose any data stored in #{gitlab_shell_authorized_keys}." - ask_to_continue - puts "" + unless ENV['force'] == 'yes' + puts "This will rebuild an authorized_keys file." + puts "You will lose any data stored in #{gitlab_shell_authorized_keys}." + ask_to_continue + puts "" + end system("echo '# Managed by gitlab-shell' > #{gitlab_shell_authorized_keys}") |
