diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-06-14 15:17:47 +0300 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-06-14 15:17:47 +0300 |
commit | a59fe739fe05bcdf0eed06f1aea276a1236c32d2 (patch) | |
tree | 49be62ad794559e4494ef00f819afdf59a8f70d9 | |
parent | 977146f568794b56d955efd4b7df8ecaf9c97599 (diff) | |
download | gitlab-ce-a59fe739fe05bcdf0eed06f1aea276a1236c32d2.tar.gz |
IMprove MR validation logic
-rw-r--r-- | app/models/merge_request.rb | 5 |
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 |