summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-06-11 02:12:06 -0700
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-06-11 02:12:06 -0700
commit5cd988249fa7f8495111523a17bb2d28cfa7177a (patch)
tree183da13e8b9d5790d57bc9dabda867b7b070f7ea /lib
parent9a0e7c0e85c4c3892c9a477be98f68c0234599b7 (diff)
parent5f4fea17ad42d24f069d19d36853b7ea61ee66c8 (diff)
downloadgitlab-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.rb2
-rw-r--r--lib/tasks/gitlab/backup.rake22
-rw-r--r--lib/tasks/gitlab/shell.rake10
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}")