From 4a5044e30269f8b3c6c075093cd4646a478231c7 Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Thu, 13 Nov 2014 13:09:47 +0100 Subject: Correctly restore empty repositories. If a project is being restored, but there is no bundle file, the project was empty when it was backed up. In this case, just use git init --base to create a new bare repository. --- lib/backup/repository.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/backup/repository.rb b/lib/backup/repository.rb index 0bb02f1a357..faa1b3b4099 100644 --- a/lib/backup/repository.rb +++ b/lib/backup/repository.rb @@ -59,7 +59,13 @@ module Backup project.namespace.ensure_dir_exist if project.namespace - if system(*%W(git clone --bare #{path_to_bundle(project)} #{path_to_repo(project)}), silent) + if File.exists?(path_to_bundle(project)) + cmd = %W(git clone --bare #{path_to_bundle(project)} #{path_to_repo(project)}) + else + cmd = %W(git init --bare #{path_to_repo(project)}) + end + + if system(*cmd, silent) puts "[DONE]".green else puts "[FAILED]".red -- cgit v1.2.3