OSDN Git Service

do not remove merge requests when fork project destroyed
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Thu, 12 Dec 2013 09:32:16 +0000 (11:32 +0200)
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Thu, 12 Dec 2013 09:32:16 +0000 (11:32 +0200)
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
app/models/project.rb

index 48fa2f6..39f0d71 100644 (file)
@@ -55,11 +55,15 @@ class Project < ActiveRecord::Base
   has_one :forked_project_link, dependent: :destroy, foreign_key: "forked_to_project_id"
   has_one :forked_from_project, through: :forked_project_link
 
-  has_many :services,           dependent: :destroy
-  has_many :events,             dependent: :destroy
+  # Merge Requests for target project should be removed with it
   has_many :merge_requests,     dependent: :destroy, foreign_key: "target_project_id"
-  has_many :fork_merge_requests,dependent: :destroy, foreign_key: "source_project_id", class_name: MergeRequest
+
+  # Merge requests from source project should be kept when source project was removed
+  has_many :fork_merge_requests, foreign_key: "source_project_id", class_name: MergeRequest
+
   has_many :issues, -> { order "state DESC, created_at DESC" }, dependent: :destroy
+  has_many :services,           dependent: :destroy
+  has_many :events,             dependent: :destroy
   has_many :milestones,         dependent: :destroy
   has_many :notes,              dependent: :destroy
   has_many :snippets,           dependent: :destroy, class_name: "ProjectSnippet"