From f4ff2ba57b54d54a623140391470de9aece1a75a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rub=C3=A9n=20D=C3=A1vila?= <rdavila84@gmail.com>
Date: Mon, 1 Feb 2016 11:26:35 -0500
Subject: [PATCH] Check target branch exists before creating revert MR.

---
 app/controllers/projects/merge_requests_controller.rb | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb
index 79e6ae26aad..d6bcb852a46 100644
--- a/app/controllers/projects/merge_requests_controller.rb
+++ b/app/controllers/projects/merge_requests_controller.rb
@@ -10,6 +10,7 @@ class Projects::MergeRequestsController < Projects::ApplicationController
   before_action :define_show_vars, only: [:show, :diffs, :commits, :builds]
   before_action :define_widget_vars, only: [:merge, :cancel_merge_when_build_succeeds, :merge_check]
   before_action :ensure_ref_fetched, only: [:show, :diffs, :commits, :builds]
+  before_action :check_target_branch_exists, only: [:revert]
 
   # Allow read any merge_request
   before_action :authorize_read_merge_request!
@@ -277,6 +278,10 @@ class Projects::MergeRequestsController < Projects::ApplicationController
     return render_404 unless @project.merge_requests_enabled
   end
 
+  def check_target_branch_exists
+    return render_404 unless @merge_request.target_branch_exists?
+  end
+
   def validates_merge_request
     # If source project was removed (Ex. mr from fork to origin)
     return invalid_mr unless @merge_request.source_project
-- 
GitLab