diff options
author | Dimitry Andric <d.andric@activevideo.com> | 2014-11-13 13:09:47 +0100 |
---|---|---|
committer | Dimitry Andric <d.andric@activevideo.com> | 2014-11-13 13:09:47 +0100 |
commit | 4a5044e30269f8b3c6c075093cd4646a478231c7 (patch) | |
tree | 08385c2a5c9fcea310d119cb200f0b9f1e8f2252 /lib | |
parent | 6adc313a1f48809543c626aa226ad56979cdde99 (diff) | |
download | gitlab-ce-4a5044e30269f8b3c6c075093cd4646a478231c7.tar.gz |
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.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/backup/repository.rb | 8 |
1 files changed, 7 insertions, 1 deletions
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 |