Commit 10fac475277f469556ddc3ef274743d8776eae74
Exists in
master
and in
4 other branches
Merge branch 'wiki_backup' of /home/git/repositories/gitlab/gitlabhq
Showing
3 changed files
with
28 additions
and
1 deletions
Show diff stats
app/models/gollum_wiki.rb
| @@ -45,6 +45,10 @@ class GollumWiki | @@ -45,6 +45,10 @@ class GollumWiki | ||
| 45 | end | 45 | end |
| 46 | end | 46 | end |
| 47 | 47 | ||
| 48 | + def empty? | ||
| 49 | + pages.empty? | ||
| 50 | + end | ||
| 51 | + | ||
| 48 | # Returns an Array of Gitlab WikiPage instances or an | 52 | # Returns an Array of Gitlab WikiPage instances or an |
| 49 | # empty Array if this Wiki has no pages. | 53 | # empty Array if this Wiki has no pages. |
| 50 | def pages | 54 | def pages |
lib/backup/repository.rb
| @@ -28,7 +28,9 @@ module Backup | @@ -28,7 +28,9 @@ module Backup | ||
| 28 | 28 | ||
| 29 | if File.exists?(path_to_repo(wiki)) | 29 | if File.exists?(path_to_repo(wiki)) |
| 30 | print " * #{wiki.path_with_namespace} ... " | 30 | print " * #{wiki.path_with_namespace} ... " |
| 31 | - if system("cd #{path_to_repo(wiki)} > /dev/null 2>&1 && git bundle create #{path_to_bundle(wiki)} --all > /dev/null 2>&1") | 31 | + if wiki.empty? |
| 32 | + puts " [SKIPPED]".cyan | ||
| 33 | + elsif system("cd #{path_to_repo(wiki)} > /dev/null 2>&1 && git bundle create #{path_to_bundle(wiki)} --all > /dev/null 2>&1") | ||
| 32 | puts " [DONE]".green | 34 | puts " [DONE]".green |
| 33 | else | 35 | else |
| 34 | puts " [FAILED]".red | 36 | puts " [FAILED]".red |
spec/models/gollum_wiki_spec.rb
| @@ -86,6 +86,27 @@ describe GollumWiki do | @@ -86,6 +86,27 @@ describe GollumWiki do | ||
| 86 | end | 86 | end |
| 87 | end | 87 | end |
| 88 | 88 | ||
| 89 | + describe "#empty?" do | ||
| 90 | + context "when the wiki repository is empty" do | ||
| 91 | + before do | ||
| 92 | + Gitlab::Shell.any_instance.stub(:add_repository) do | ||
| 93 | + create_temp_repo("#{Rails.root}/tmp/test-git-base-path/non-existant.wiki.git") | ||
| 94 | + end | ||
| 95 | + project.stub(:path_with_namespace).and_return("non-existant") | ||
| 96 | + end | ||
| 97 | + | ||
| 98 | + its(:empty?) { should be_true } | ||
| 99 | + end | ||
| 100 | + | ||
| 101 | + context "when the wiki has pages" do | ||
| 102 | + before do | ||
| 103 | + create_page("index", "This is an awesome new Gollum Wiki") | ||
| 104 | + end | ||
| 105 | + | ||
| 106 | + its(:empty?) { should be_false } | ||
| 107 | + end | ||
| 108 | + end | ||
| 109 | + | ||
| 89 | describe "#pages" do | 110 | describe "#pages" do |
| 90 | before do | 111 | before do |
| 91 | create_page("index", "This is an awesome new Gollum Wiki") | 112 | create_page("index", "This is an awesome new Gollum Wiki") |