From 489fa5d72631505873b8c33f3a2bbd5919330a92 Mon Sep 17 00:00:00 2001 From: Izaak Alpert Date: Mon, 3 Jun 2013 16:20:50 -0400 Subject: MR on Fork multiple fixes -Disable observers post test run -Allow db:seed_fu RAILS_ENV=test to be run more than once without error -fix diffs_in_between, was passing in the default_options for grit, but grit in this case doesn't take options, fixed the test to actually fail if the incorrect diffs are returned -make notes/commits render against proper project -MR discussion file links should reference note's project -Added tests for commit links on edit merge request -fixes edit issues (canceling an edited mr, updating an edited mr) -updates tests with checks for source code updates -still forked_merge_requests.feature (project_forked_merge_requests) test not passing (commented out -- "stable" not being set) MR API: error on bad target_project -If the target project id is specified and it is not the same as the project the request is being made on (the source), and the it isn't a fork of that project, error out, otherwise use it as the target -Fixes some busted (but hidden) test cases Conflicts: app/views/merge_requests/show/_diffs.html.haml spec/features/notes_on_merge_requests_spec.rb Change-Id: I20e595c156d0e8a63048baaead7be6330c738a05 --- app/controllers/projects/merge_requests_controller.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'app/controllers') diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb index 6c5285be0a2..5bbf52beed9 100644 --- a/app/controllers/projects/merge_requests_controller.rb +++ b/app/controllers/projects/merge_requests_controller.rb @@ -50,10 +50,13 @@ class Projects::MergeRequestsController < Projects::ApplicationController @merge_request.target_project = Project.find_by_id(params[:merge_request][:target_project_id]) end @target_branches = @merge_request.target_project.nil? ? [] : @merge_request.target_project.repository.branch_names + @source_project = @merge_request.source_project @merge_request end def edit + @source_project = @merge_request.source_project + @target_project = @merge_request.target_project @target_branches = @merge_request.target_project.repository.branch_names end @@ -75,7 +78,7 @@ class Projects::MergeRequestsController < Projects::ApplicationController if @merge_request.update_attributes(params[:merge_request].merge(author_id_of_changes: current_user.id)) @merge_request.reload_code @merge_request.mark_as_unchecked - redirect_to [@project, @merge_request], notice: 'Merge request was successfully updated.' + redirect_to [@merge_request.target_project, @merge_request], notice: 'Merge request was successfully updated.' else render "edit" end @@ -104,6 +107,7 @@ class Projects::MergeRequestsController < Projects::ApplicationController def branch_from #This is always source + @source_project = @merge_request.nil? ? @project : @merge_request.source_project @commit = @repository.commit(params[:ref]) end @@ -128,13 +132,14 @@ class Projects::MergeRequestsController < Projects::ApplicationController protected + def selected_target_project ((@project.id.to_s == params[:target_project_id]) || @project.forked_project_link.nil?) ? @project : @project.forked_project_link.forked_from_project end def merge_request - @merge_request ||= @project.merge_requests.find(params[:id]) + @merge_request ||= MergeRequest.find_by_id(params[:id]) end def authorize_modify_merge_request! -- cgit v1.2.1