summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2017-07-03 19:29:26 +0000
committerSean McGivern <sean@mcgivern.me.uk>2017-07-03 19:29:26 +0000
commit049d4baed0f3532359feb729c5f0938d3d4518ef (patch)
tree523d6aae47f594a3b658d7c070e66f909e1a53a0 /app
parent65745f52833694f9fac956fb7e0c03233e646684 (diff)
parent73f5b02b4fa275bbd3a5880144114ea69f594307 (diff)
downloadgitlab-ce-049d4baed0f3532359feb729c5f0938d3d4518ef.tar.gz
Merge branch 'sh-allow-force-repo-create' into 'master'
Make Project#ensure_repository force create a repo Closes gitlab-ee#2800 See merge request !12580
Diffstat (limited to 'app')
-rw-r--r--app/models/project.rb20
1 files changed, 10 insertions, 10 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index a6708cf48ac..241e7e60dd2 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -1074,21 +1074,21 @@ class Project < ActiveRecord::Base
merge_requests.where(source_project_id: self.id)
end
- def create_repository
+ def create_repository(force: false)
# Forked import is handled asynchronously
- unless forked?
- if gitlab_shell.add_repository(repository_storage_path, path_with_namespace)
- repository.after_create
- true
- else
- errors.add(:base, 'Failed to create repository via gitlab-shell')
- false
- end
+ return if forked? && !force
+
+ if gitlab_shell.add_repository(repository_storage_path, path_with_namespace)
+ repository.after_create
+ true
+ else
+ errors.add(:base, 'Failed to create repository via gitlab-shell')
+ false
end
end
def ensure_repository
- create_repository unless repository_exists?
+ create_repository(force: true) unless repository_exists?
end
def repository_exists?