Commit 8eae01ea58c505a3c132e3d4f09cf77e7c1fc574

Authored by Dmitriy Zaporozhets
1 parent 05e63fe0

Compare branches in MergeRequestsController#new action

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
app/controllers/projects/merge_requests_controller.rb
@@ -62,11 +62,27 @@ class Projects::MergeRequestsController &lt; Projects::ApplicationController @@ -62,11 +62,27 @@ class Projects::MergeRequestsController &lt; 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 &lt; Projects::ApplicationController @@ -80,7 +96,7 @@ class Projects::MergeRequestsController &lt; 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