mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-09 20:56:08 +10:00
Branches without parent commit cannot be merged.
This commit is contained in:
@@ -95,14 +95,18 @@ class Projects::MergeRequestsController < Projects::ApplicationController
|
||||
@note_counts = Note.where(commit_id: @commits.map(&:id)).
|
||||
group(:commit_id).count
|
||||
|
||||
@diffs = compare_action.diffs
|
||||
@merge_request.title = @merge_request.source_branch.titleize.humanize
|
||||
@target_project = @merge_request.target_project
|
||||
@target_repo = @target_project.repository
|
||||
begin
|
||||
@diffs = compare_action.diffs
|
||||
@merge_request.title = @merge_request.source_branch.titleize.humanize
|
||||
@target_project = @merge_request.target_project
|
||||
@target_repo = @target_project.repository
|
||||
|
||||
diff_line_count = Commit::diff_line_count(@diffs)
|
||||
@suppress_diff = Commit::diff_suppress?(@diffs, diff_line_count)
|
||||
@force_suppress_diff = @suppress_diff
|
||||
diff_line_count = Commit::diff_line_count(@diffs)
|
||||
@suppress_diff = Commit::diff_suppress?(@diffs, diff_line_count)
|
||||
@force_suppress_diff = @suppress_diff
|
||||
rescue Gitlab::Satellite::BranchesWithoutParent
|
||||
@error = "Selected branches have no common commit so they cannot be compared."
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -10,72 +10,75 @@
|
||||
|
||||
%span.pull-right
|
||||
= link_to 'Change branches', new_project_merge_request_path(@project)
|
||||
- if @error.present?
|
||||
.centered-light-block
|
||||
%h4 #{@error}
|
||||
- else
|
||||
= form_for [@project, @merge_request], html: { class: "merge-request-form" } do |f|
|
||||
.panel.panel-default
|
||||
|
||||
= form_for [@project, @merge_request], html: { class: "merge-request-form" } do |f|
|
||||
.panel.panel-default
|
||||
.panel-body
|
||||
.form-group
|
||||
.light
|
||||
= f.label :title do
|
||||
= "Title *"
|
||||
= f.text_field :title, class: "form-control input-lg js-gfm-input", maxlength: 255, rows: 5, required: true
|
||||
.form-group
|
||||
.light
|
||||
= f.label :description, "Description"
|
||||
= f.text_area :description, class: "form-control js-gfm-input markdown-area", rows: 10
|
||||
.clearfix.hint
|
||||
.pull-left Description is parsed with #{link_to "GitLab Flavored Markdown", help_page_path("markdown", "markdown"), target: '_blank'}.
|
||||
.pull-right Attach images (JPG, PNG, GIF) by dragging & dropping or #{link_to "selecting them", '#', class: 'markdown-selector' }.
|
||||
.error-alert
|
||||
.form-group
|
||||
.issue-assignee
|
||||
= f.label :assignee_id do
|
||||
%i.icon-user
|
||||
Assign to
|
||||
%div
|
||||
= project_users_select_tag('merge_request[assignee_id]', placeholder: 'Select a user', class: 'custom-form-control', selected: @merge_request.assignee_id, project_id: @merge_request.target_project_id)
|
||||
|
||||
= link_to 'Assign to me', '#', class: 'btn assign-to-me-link'
|
||||
.form-group
|
||||
.issue-milestone
|
||||
= f.label :milestone_id do
|
||||
%i.icon-time
|
||||
Milestone
|
||||
%div= f.select(:milestone_id, milestone_options(@merge_request), { include_blank: "Select milestone" }, {class: 'select2'})
|
||||
.panel-footer
|
||||
- if @target_repo.contribution_guide
|
||||
- contribution_guide_url = project_blob_path(@target_project, tree_join(@target_repo.root_ref, @target_repo.contribution_guide.name))
|
||||
%p
|
||||
Please review the
|
||||
%strong #{link_to "guidelines for contribution", contribution_guide_url}
|
||||
to this repository.
|
||||
= f.hidden_field :source_project_id
|
||||
= f.hidden_field :target_project_id
|
||||
= f.hidden_field :target_branch
|
||||
= f.hidden_field :source_branch
|
||||
= f.submit 'Submit merge request', class: "btn btn-create"
|
||||
|
||||
.panel-body
|
||||
.form-group
|
||||
.light
|
||||
= f.label :title do
|
||||
= "Title *"
|
||||
= f.text_field :title, class: "form-control input-lg js-gfm-input", maxlength: 255, rows: 5, required: true
|
||||
.form-group
|
||||
.light
|
||||
= f.label :description, "Description"
|
||||
= f.text_area :description, class: "form-control js-gfm-input markdown-area", rows: 10
|
||||
.clearfix.hint
|
||||
.pull-left Description is parsed with #{link_to "GitLab Flavored Markdown", help_page_path("markdown", "markdown"), target: '_blank'}.
|
||||
.pull-right Attach images (JPG, PNG, GIF) by dragging & dropping or #{link_to "selecting them", '#', class: 'markdown-selector' }.
|
||||
.error-alert
|
||||
.form-group
|
||||
.issue-assignee
|
||||
= f.label :assignee_id do
|
||||
%i.icon-user
|
||||
Assign to
|
||||
%div
|
||||
= project_users_select_tag('merge_request[assignee_id]', placeholder: 'Select a user', class: 'custom-form-control', selected: @merge_request.assignee_id, project_id: @merge_request.target_project_id)
|
||||
|
||||
= link_to 'Assign to me', '#', class: 'btn assign-to-me-link'
|
||||
.form-group
|
||||
.issue-milestone
|
||||
= f.label :milestone_id do
|
||||
%i.icon-time
|
||||
Milestone
|
||||
%div= f.select(:milestone_id, milestone_options(@merge_request), { include_blank: "Select milestone" }, {class: 'select2'})
|
||||
.panel-footer
|
||||
- if @target_repo.contribution_guide
|
||||
- contribution_guide_url = project_blob_path(@target_project, tree_join(@target_repo.root_ref, @target_repo.contribution_guide.name))
|
||||
%p
|
||||
Please review the
|
||||
%strong #{link_to "guidelines for contribution", contribution_guide_url}
|
||||
to this repository.
|
||||
= f.hidden_field :source_project_id
|
||||
= f.hidden_field :target_project_id
|
||||
= f.hidden_field :target_branch
|
||||
= f.hidden_field :source_branch
|
||||
= f.submit 'Submit merge request', class: "btn btn-create"
|
||||
.mr-compare
|
||||
%div.panel.panel-default
|
||||
.panel-heading
|
||||
Commits (#{@commits.count})
|
||||
- if @commits.size > MergeRequestDiff::COMMITS_SAFE_SIZE
|
||||
%ul.well-list
|
||||
- Commit.decorate(@commits.first(MergeRequestDiff::COMMITS_SAFE_SIZE)).each do |commit|
|
||||
= render "projects/commits/inline_commit", commit: commit, project: @project
|
||||
%li.warning-row.unstyled
|
||||
other #{@commits.size - MergeRequestDiff::COMMITS_SAFE_SIZE} commits hidden to prevent performance issues.
|
||||
- else
|
||||
%ul.well-list= render Commit.decorate(@commits), project: @project
|
||||
|
||||
.mr-compare
|
||||
%div.panel.panel-default
|
||||
.panel-heading
|
||||
Commits (#{@commits.count})
|
||||
- if @commits.size > MergeRequestDiff::COMMITS_SAFE_SIZE
|
||||
%ul.well-list
|
||||
- Commit.decorate(@commits.first(MergeRequestDiff::COMMITS_SAFE_SIZE)).each do |commit|
|
||||
= render "projects/commits/inline_commit", commit: commit, project: @project
|
||||
%li.warning-row.unstyled
|
||||
other #{@commits.size - MergeRequestDiff::COMMITS_SAFE_SIZE} commits hidden to prevent performance issues.
|
||||
- else
|
||||
%ul.well-list= render Commit.decorate(@commits), project: @project
|
||||
|
||||
%h4 Changes
|
||||
- if @diffs.present?
|
||||
= render "projects/commits/diffs", diffs: @diffs, project: @project
|
||||
- elsif @commits.size > MergeRequestDiff::COMMITS_SAFE_SIZE
|
||||
.bs-callout.bs-callout-danger
|
||||
%h4 This comparison includes more than #{MergeRequestDiff::COMMITS_SAFE_SIZE} commits.
|
||||
%p To preserve performance the line changes are not shown.
|
||||
%h4 Changes
|
||||
- if @diffs.present?
|
||||
= render "projects/commits/diffs", diffs: @diffs, project: @project
|
||||
- elsif @commits.size > MergeRequestDiff::COMMITS_SAFE_SIZE
|
||||
.bs-callout.bs-callout-danger
|
||||
%h4 This comparison includes more than #{MergeRequestDiff::COMMITS_SAFE_SIZE} commits.
|
||||
%p To preserve performance the line changes are not shown.
|
||||
|
||||
|
||||
:javascript
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
module Gitlab
|
||||
module Satellite
|
||||
class BranchesWithoutParent < StandardError; end
|
||||
|
||||
class CompareAction < Action
|
||||
def initialize(user, target_project, target_branch, source_project, source_branch)
|
||||
super user, target_project
|
||||
@@ -22,7 +24,7 @@ module Gitlab
|
||||
diffs
|
||||
end
|
||||
rescue Grit::Git::CommandFailed => ex
|
||||
handle_exception(ex)
|
||||
raise BranchesWithoutParent
|
||||
end
|
||||
|
||||
# Retrieve an array of commits between the source and the target
|
||||
|
||||
Reference in New Issue
Block a user