Commit 8eae01ea58c505a3c132e3d4f09cf77e7c1fc574
1 parent
05e63fe0
Exists in
spb-stable
and in
2 other branches
Compare branches in MergeRequestsController#new action
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Showing
1 changed file
with
20 additions
and
4 deletions
Show diff stats
app/controllers/projects/merge_requests_controller.rb
| @@ -62,11 +62,27 @@ class Projects::MergeRequestsController < Projects::ApplicationController | @@ -62,11 +62,27 @@ class Projects::MergeRequestsController < Projects::ApplicationController | ||
| 62 | @merge_request.source_project = @project unless @merge_request.source_project | 62 | @merge_request.source_project = @project unless @merge_request.source_project |
| 63 | @merge_request.target_project ||= (@project.forked_from_project || @project) | 63 | @merge_request.target_project ||= (@project.forked_from_project || @project) |
| 64 | @target_branches = @merge_request.target_project.nil? ? [] : @merge_request.target_project.repository.branch_names | 64 | @target_branches = @merge_request.target_project.nil? ? [] : @merge_request.target_project.repository.branch_names |
| 65 | - | ||
| 66 | @merge_request.target_branch ||= @merge_request.target_project.default_branch | 65 | @merge_request.target_branch ||= @merge_request.target_project.default_branch |
| 67 | - | ||
| 68 | @source_project = @merge_request.source_project | 66 | @source_project = @merge_request.source_project |
| 69 | - @merge_request | 67 | + |
| 68 | + if @merge_request.target_branch && @merge_request.source_branch | ||
| 69 | + compare_action = Gitlab::Satellite::CompareAction.new( | ||
| 70 | + current_user, | ||
| 71 | + @merge_request.target_project, | ||
| 72 | + @merge_request.target_branch, | ||
| 73 | + @merge_request.source_project, | ||
| 74 | + @merge_request.source_branch | ||
| 75 | + ) | ||
| 76 | + | ||
| 77 | + @commits = compare_action.commits | ||
| 78 | + @commits.map! { |commit| Commit.new(commit) } | ||
| 79 | + @commit = @commits.first | ||
| 80 | + | ||
| 81 | + @diffs = compare_action.diffs | ||
| 82 | + @merge_request.title = @merge_request.source_branch.titleize.humanize | ||
| 83 | + @target_project = @merge_request.target_project | ||
| 84 | + @target_repo = @target_project.repository | ||
| 85 | + end | ||
| 70 | end | 86 | end |
| 71 | 87 | ||
| 72 | def edit | 88 | def edit |
| @@ -80,7 +96,7 @@ class Projects::MergeRequestsController < Projects::ApplicationController | @@ -80,7 +96,7 @@ class Projects::MergeRequestsController < Projects::ApplicationController | ||
| 80 | @merge_request = MergeRequests::CreateService.new(project, current_user, params[:merge_request]).execute | 96 | @merge_request = MergeRequests::CreateService.new(project, current_user, params[:merge_request]).execute |
| 81 | 97 | ||
| 82 | if @merge_request.valid? | 98 | if @merge_request.valid? |
| 83 | - redirect_to [@merge_request.target_project, @merge_request], notice: 'Merge request was successfully created.' | 99 | + redirect_to project_merge_request_path(@merge_request.target_project, @merge_request), notice: 'Merge request was successfully created.' |
| 84 | else | 100 | else |
| 85 | @source_project = @merge_request.source_project | 101 | @source_project = @merge_request.source_project |
| 86 | @target_project = @merge_request.target_project | 102 | @target_project = @merge_request.target_project |