summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-06-14 15:17:47 +0300
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-06-14 15:17:47 +0300
commita59fe739fe05bcdf0eed06f1aea276a1236c32d2 (patch)
tree49be62ad794559e4494ef00f819afdf59a8f70d9
parent977146f568794b56d955efd4b7df8ecaf9c97599 (diff)
downloadgitlab-ce-a59fe739fe05bcdf0eed06f1aea276a1236c32d2.tar.gz
IMprove MR validation logic
-rw-r--r--app/models/merge_request.rb5
1 files changed, 4 insertions, 1 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index 13f55a88b52..fdabb8753f8 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -92,7 +92,10 @@ class MergeRequest < ActiveRecord::Base
errors.add :branch_conflict, "You can not use same branch for source and target branches"
end
- if self.project.merge_requests.where(source_branch: source_branch, target_branch: target_branch).opened.any?
+ similar_mrs = self.project.merge_requests.where(source_branch: source_branch, target_branch: target_branch).opened
+ similar_mrs = similar_mrs.where('id not in (?)', self.id) if self.id
+
+ if similar_mrs.any?
errors.add :base, "There is already an open merge request for this branches"
end
end