Commit ff35b37fd2df3b4bdcb9f1b7448d98df07237d08
1 parent
1fb99264
Exists in
master
and in
4 other branches
transfer also wiki repository when transfer a project
Showing
1 changed file
with
8 additions
and
2 deletions
Show diff stats
app/services/project_transfer_service.rb
| @@ -5,6 +5,8 @@ | @@ -5,6 +5,8 @@ | ||
| 5 | class ProjectTransferService | 5 | class ProjectTransferService |
| 6 | include Gitlab::ShellAdapter | 6 | include Gitlab::ShellAdapter |
| 7 | 7 | ||
| 8 | + class TransferError < StandardError; end | ||
| 9 | + | ||
| 8 | attr_accessor :project | 10 | attr_accessor :project |
| 9 | 11 | ||
| 10 | def transfer(project, new_namespace) | 12 | def transfer(project, new_namespace) |
| @@ -19,14 +21,18 @@ class ProjectTransferService | @@ -19,14 +21,18 @@ class ProjectTransferService | ||
| 19 | project.namespace = new_namespace | 21 | project.namespace = new_namespace |
| 20 | project.save! | 22 | project.save! |
| 21 | 23 | ||
| 24 | + # Move main repository | ||
| 22 | unless gitlab_shell.mv_repository(old_path, new_path) | 25 | unless gitlab_shell.mv_repository(old_path, new_path) |
| 23 | raise TransferError.new('Cannot move project') | 26 | raise TransferError.new('Cannot move project') |
| 24 | end | 27 | end |
| 25 | 28 | ||
| 29 | + # Move wiki repo also if present | ||
| 30 | + if project.wikis.any? | ||
| 31 | + gitlab_shell.mv_repository("#{old_path}.wiki", "#{new_path}.wiki") | ||
| 32 | + end | ||
| 33 | + | ||
| 26 | true | 34 | true |
| 27 | end | 35 | end |
| 28 | - rescue => ex | ||
| 29 | - raise Project::TransferError.new(ex.message) | ||
| 30 | end | 36 | end |
| 31 | end | 37 | end |
| 32 | 38 |