From 9c82bca5ee274d700ec3166d4521d4c6d2ff896c Mon Sep 17 00:00:00 2001 From: Angus MacArthur Date: Wed, 29 May 2013 15:19:23 -0400 Subject: [PATCH] fixes for gitlab restore with non-standard backup and repo dirs --- lib/backup/repository.rb | 2 +- lib/tasks/gitlab/backup.rake | 3 +++ lib/tasks/gitlab/shell.rake | 10 ++++++---- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/backup/repository.rb b/lib/backup/repository.rb index 62a510f..c5e3d04 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 65d99d1..920d29a 100644 --- a/lib/tasks/gitlab/backup.rake +++ b/lib/tasks/gitlab/backup.rake @@ -90,6 +90,9 @@ namespace :gitlab do settings = YAML.load_file("backup_information.yml") ENV["VERSION"] = "#{settings[:db_version]}" if settings[:db_version].to_i > 0 + # backups directory is not always sub of Rails root and able to execute the git rev-parse below + 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 diff --git a/lib/tasks/gitlab/shell.rake b/lib/tasks/gitlab/shell.rake index ec5451d..11d4eac 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}") -- libgit2 0.21.2