diff options
author | Andrew Kumanyaev <me@zzet.org> | 2013-07-31 20:31:34 +0400 |
---|---|---|
committer | Andrew Kumanyaev <me@zzet.org> | 2013-07-31 20:31:34 +0400 |
commit | fb8a3e319a59cedd19191a169cfae08b2923ecbe (patch) | |
tree | 37dc07967a842f8aa7e460a42fc29d39b40c5953 | |
parent | b19bffc536c85262e85f81237c544e18040742c6 (diff) | |
download | gitlab-ce-fb8a3e319a59cedd19191a169cfae08b2923ecbe.tar.gz |
Update logic for validates_merge_request for tree of MR
For case:
Merge request №1: branch "feature" to "release" and remove "feature" branch
Merge request №2: branch "release" to "master" and remove "release" branch
Merge request №1 - broken :(
-rw-r--r-- | app/controllers/projects/merge_requests_controller.rb | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb index 33c1a1feff7..d07fa8cb79a 100644 --- a/app/controllers/projects/merge_requests_controller.rb +++ b/app/controllers/projects/merge_requests_controller.rb @@ -122,12 +122,16 @@ class Projects::MergeRequestsController < Projects::ApplicationController end def validates_merge_request - # Show git not found page if target branch doesn't exist - return invalid_mr unless @project.repository.branch_names.include?(@merge_request.target_branch) - - # Show git not found page if source branch doesn't exist - # and there is no saved commits between source & target branch - return invalid_mr if !@project.repository.branch_names.include?(@merge_request.source_branch) && @merge_request.commits.blank? + # Show git not found page + # if there is no saved commits between source & target branch + if @merge_request.commits.blank? + # and + # if source target doesn't exist + return invalid_mr if !@project.repository.branch_names.include?(@merge_request.target_branch) + + # or if source branch doesn't exist + return invalid_mr if !@project.repository.branch_names.include?(@merge_request.source_branch) + end end def define_show_vars |