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

Fix dumping hashed storage based repository

parent a4072db0
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -21,7 +21,7 @@ class ProjectWiki
end
 
delegate :empty?, to: :pages
delegate :repository_storage_path, to: :project
delegate :repository_storage_path, :hashed_storage?, to: :project
 
def path
@project.path + '.wiki'
Loading
Loading
Loading
Loading
@@ -7,12 +7,16 @@ module Backup
prepare
 
Project.find_each(batch_size: 1000) do |project|
progress.print " * #{project.full_path} ... "
progress.print " * #{display_repo_path(project)} ... "
path_to_project_repo = path_to_repo(project)
path_to_project_bundle = path_to_bundle(project)
 
# Create namespace dir if missing
FileUtils.mkdir_p(File.join(backup_repos_path, project.namespace.full_path)) if project.namespace
# Create namespace dir or hashed path if missing
if project.hashed_storage?(:repository)
FileUtils.mkdir_p(File.dirname(File.join(backup_repos_path, project.disk_path)))
else
FileUtils.mkdir_p(File.join(backup_repos_path, project.namespace.full_path)) if project.namespace
end
 
if empty_repo?(project)
progress.puts "[SKIPPED]".color(:cyan)
Loading
Loading
@@ -42,7 +46,7 @@ module Backup
path_to_wiki_bundle = path_to_bundle(wiki)
 
if File.exist?(path_to_wiki_repo)
progress.print " * #{wiki.full_path} ... "
progress.print " * #{display_repo_path(wiki)} ... "
if empty_repo?(wiki)
progress.puts " [SKIPPED]".color(:cyan)
else
Loading
Loading
@@ -71,7 +75,7 @@ module Backup
end
 
Project.find_each(batch_size: 1000) do |project|
progress.print " * #{project.full_path} ... "
progress.print " * #{display_repo_path(project)} ... "
path_to_project_repo = path_to_repo(project)
path_to_project_bundle = path_to_bundle(project)
 
Loading
Loading
@@ -104,7 +108,7 @@ module Backup
path_to_wiki_bundle = path_to_bundle(wiki)
 
if File.exist?(path_to_wiki_bundle)
progress.print " * #{wiki.full_path} ... "
progress.print " * #{display_repo_path(wiki)} ... "
 
# If a wiki bundle exists, first remove the empty repo
# that was initialized with ProjectWiki.new() and then
Loading
Loading
@@ -185,14 +189,14 @@ module Backup
 
def progress_warn(project, cmd, output)
progress.puts "[WARNING] Executing #{cmd}".color(:orange)
progress.puts "Ignoring error on #{project.full_path} - #{output}".color(:orange)
progress.puts "Ignoring error on #{display_repo_path(project)} - #{output}".color(:orange)
end
 
def empty_repo?(project_or_wiki)
project_or_wiki.repository.expire_exists_cache # protect backups from stale cache
project_or_wiki.repository.empty_repo?
rescue => e
progress.puts "Ignoring repository error and continuing backing up project: #{project_or_wiki.full_path} - #{e.message}".color(:orange)
progress.puts "Ignoring repository error and continuing backing up project: #{display_repo_path(project_or_wiki)} - #{e.message}".color(:orange)
 
false
end
Loading
Loading
@@ -204,5 +208,9 @@ module Backup
def progress
$progress
end
def display_repo_path(project)
project.hashed_storage?(:repository) ? "#{project.full_path} (#{project.disk_path})" : project.full_path
end
end
end
Loading
Loading
@@ -10,6 +10,10 @@ describe ProjectWiki do
 
subject { project_wiki }
 
it { is_expected.to delegate_method(:empty?).to :pages }
it { is_expected.to delegate_method(:repository_storage_path).to :project }
it { is_expected.to delegate_method(:hashed_storage?).to :project }
describe "#path_with_namespace" do
it "returns the project path with namespace with the .wiki extension" do
expect(subject.path_with_namespace).to eq(project.full_path + '.wiki')
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