summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-11-20 11:06:42 +0200
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-11-20 11:06:42 +0200
commit30912835e3a6824459e1cc64e3144fe90b9aa959 (patch)
tree3dcc604f6bff886b1dd36aa4924d19123892888e
parent182aa19e26cbc77b3cc7f10f0c228ea4aa2d7c77 (diff)
downloadgitlab-ce-30912835e3a6824459e1cc64e3144fe90b9aa959.tar.gz
Correctly remove and re-create satellites when project transfer
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
-rw-r--r--app/services/project_transfer_service.rb8
1 files changed, 6 insertions, 2 deletions
diff --git a/app/services/project_transfer_service.rb b/app/services/project_transfer_service.rb
index 7150c1c78c0..7055ef32aee 100644
--- a/app/services/project_transfer_service.rb
+++ b/app/services/project_transfer_service.rb
@@ -18,6 +18,10 @@ class ProjectTransferService
raise TransferError.new("Project with same path in target namespace already exists")
end
+ # Remove old satellite
+ project.satellite.destroy
+
+ # Apply new namespace id
project.namespace = new_namespace
project.save!
@@ -29,8 +33,8 @@ class ProjectTransferService
# Move wiki repo also if present
gitlab_shell.mv_repository("#{old_path}.wiki", "#{new_path}.wiki")
- # create satellite repo
- project.ensure_satellite_exists
+ # Create a new satellite (reload project from DB)
+ Project.find(project.id).ensure_satellite_exists
# clear project cached events
project.reset_events_cache