Rename from base to start because base could mean merge base

This commit is contained in:
Lin Jen-Shin 2017-01-06 23:29:13 +08:00
parent e3c36850a6
commit ccc73c455b
11 changed files with 91 additions and 91 deletions

View file

@ -4,10 +4,10 @@ module CreatesCommit
def create_commit(service, success_path:, failure_path:, failure_view: nil, success_notice: nil)
set_commit_variables
base_branch = @mr_target_branch unless initial_commit?
start_branch = @mr_target_branch unless initial_commit?
commit_params = @commit_params.merge(
base_project: @mr_target_project,
base_branch: base_branch,
start_project: @mr_target_project,
start_branch: start_branch,
target_branch: @mr_source_branch
)

View file

@ -748,12 +748,12 @@ class Repository
user, path,
message:, branch_name:,
author_email: nil, author_name: nil,
base_branch_name: nil, base_project: project)
start_branch_name: nil, start_project: project)
check_tree_entry_for_dir(branch_name, path)
if base_branch_name
base_project.repository.
check_tree_entry_for_dir(base_branch_name, path)
if start_branch_name
start_project.repository.
check_tree_entry_for_dir(start_branch_name, path)
end
commit_file(
@ -765,8 +765,8 @@ class Repository
update: false,
author_email: author_email,
author_name: author_name,
base_branch_name: base_branch_name,
base_project: base_project)
start_branch_name: start_branch_name,
start_project: start_project)
end
# rubocop:enable Metrics/ParameterLists
@ -775,7 +775,7 @@ class Repository
user, path, content,
message:, branch_name:, update: true,
author_email: nil, author_name: nil,
base_branch_name: nil, base_project: project)
start_branch_name: nil, start_project: project)
unless update
error_message = "Filename already exists; update not allowed"
@ -783,8 +783,8 @@ class Repository
raise Gitlab::Git::Repository::InvalidBlobName.new(error_message)
end
if base_branch_name &&
base_project.repository.tree_entry_at(base_branch_name, path)
if start_branch_name &&
start_project.repository.tree_entry_at(start_branch_name, path)
raise Gitlab::Git::Repository::InvalidBlobName.new(error_message)
end
end
@ -795,8 +795,8 @@ class Repository
branch_name: branch_name,
author_email: author_email,
author_name: author_name,
base_branch_name: base_branch_name,
base_project: base_project,
start_branch_name: start_branch_name,
start_project: start_project,
actions: [{ action: :create,
file_path: path,
content: content }])
@ -808,7 +808,7 @@ class Repository
user, path, content,
message:, branch_name:, previous_path:,
author_email: nil, author_name: nil,
base_branch_name: nil, base_project: project)
start_branch_name: nil, start_project: project)
action = if previous_path && previous_path != path
:move
else
@ -821,8 +821,8 @@ class Repository
branch_name: branch_name,
author_email: author_email,
author_name: author_name,
base_branch_name: base_branch_name,
base_project: base_project,
start_branch_name: start_branch_name,
start_project: start_project,
actions: [{ action: action,
file_path: path,
content: content,
@ -835,15 +835,15 @@ class Repository
user, path,
message:, branch_name:,
author_email: nil, author_name: nil,
base_branch_name: nil, base_project: project)
start_branch_name: nil, start_project: project)
multi_action(
user: user,
message: message,
branch_name: branch_name,
author_email: author_email,
author_name: author_name,
base_branch_name: base_branch_name,
base_project: base_project,
start_branch_name: start_branch_name,
start_project: start_project,
actions: [{ action: :delete,
file_path: path }])
end
@ -853,16 +853,16 @@ class Repository
def multi_action(
user:, branch_name:, message:, actions:,
author_email: nil, author_name: nil,
base_branch_name: nil, base_project: project)
start_branch_name: nil, start_project: project)
GitOperationService.new(user, self).with_branch(
branch_name,
base_branch_name: base_branch_name,
base_project: base_project) do |base_commit|
start_branch_name: start_branch_name,
start_project: start_project) do |start_commit|
index = rugged.index
parents = if base_commit
index.read_tree(base_commit.raw_commit.tree)
[base_commit.sha]
parents = if start_commit
index.read_tree(start_commit.raw_commit.tree)
[start_commit.sha]
else
[]
end
@ -910,8 +910,8 @@ class Repository
def merge(user, merge_request, options = {})
GitOperationService.new(user, self).with_branch(
merge_request.target_branch) do |base_commit|
our_commit = base_commit.sha
merge_request.target_branch) do |start_commit|
our_commit = start_commit.sha
their_commit = merge_request.diff_head_sha
raise 'Invalid merge target' unless our_commit
@ -935,15 +935,15 @@ class Repository
def revert(
user, commit, branch_name, revert_tree_id = nil,
base_branch_name: nil, base_project: project)
start_branch_name: nil, start_project: project)
revert_tree_id ||= check_revert_content(commit, branch_name)
return false unless revert_tree_id
GitOperationService.new(user, self).with_branch(
branch_name,
base_branch_name: base_branch_name,
base_project: base_project) do |base_commit|
start_branch_name: start_branch_name,
start_project: start_project) do |start_commit|
committer = user_to_committer(user)
@ -952,21 +952,21 @@ class Repository
author: committer,
committer: committer,
tree: revert_tree_id,
parents: [base_commit.sha])
parents: [start_commit.sha])
end
end
def cherry_pick(
user, commit, branch_name, cherry_pick_tree_id = nil,
base_branch_name: nil, base_project: project)
start_branch_name: nil, start_project: project)
cherry_pick_tree_id ||= check_cherry_pick_content(commit, branch_name)
return false unless cherry_pick_tree_id
GitOperationService.new(user, self).with_branch(
branch_name,
base_branch_name: base_branch_name,
base_project: base_project) do |base_commit|
start_branch_name: start_branch_name,
start_project: start_project) do |start_commit|
committer = user_to_committer(user)
@ -979,7 +979,7 @@ class Repository
},
committer: committer,
tree: cherry_pick_tree_id,
parents: [base_commit.sha])
parents: [start_commit.sha])
end
end
@ -1066,20 +1066,20 @@ class Repository
Gitlab::Popen.popen(args, path_to_repo).first.lines.map(&:strip)
end
def with_repo_branch_commit(base_repository, base_branch_name)
def with_repo_branch_commit(start_repository, start_branch_name)
branch_name_or_sha =
if base_repository == self
base_branch_name
if start_repository == self
start_branch_name
else
tmp_ref = "refs/tmp/#{SecureRandom.hex}/head"
fetch_ref(
base_repository.path_to_repo,
"#{Gitlab::Git::BRANCH_REF_PREFIX}#{base_branch_name}",
start_repository.path_to_repo,
"#{Gitlab::Git::BRANCH_REF_PREFIX}#{start_branch_name}",
tmp_ref
)
base_repository.commit(base_branch_name).sha
start_repository.commit(start_branch_name).sha
end
yield(commit(branch_name_or_sha))

View file

@ -4,8 +4,8 @@ module Commits
class ChangeError < StandardError; end
def execute
@base_project = params[:base_project] || @project
@base_branch = params[:base_branch]
@start_project = params[:start_project] || @project
@start_branch = params[:start_branch]
@target_branch = params[:target_branch]
@commit = params[:commit]
@create_merge_request = params[:create_merge_request].present?
@ -28,7 +28,7 @@ module Commits
if @create_merge_request
into = @commit.public_send("#{action}_branch_name")
tree_branch = @base_branch
tree_branch = @start_branch
else
into = tree_branch = @target_branch
end
@ -45,8 +45,8 @@ module Commits
@commit,
into,
tree_id,
base_project: @base_project,
base_branch_name: @base_branch)
start_project: @start_project,
start_branch_name: @start_branch)
success
else

View file

@ -3,18 +3,18 @@ require 'securerandom'
# Compare 2 branches for one repo or between repositories
# and return Gitlab::Git::Compare object that responds to commits and diffs
class CompareService
attr_reader :base_project, :base_branch_name
attr_reader :start_project, :start_branch_name
def initialize(new_base_project, new_base_branch_name)
@base_project = new_base_project
@base_branch_name = new_base_branch_name
def initialize(new_start_project, new_start_branch_name)
@start_project = new_start_project
@start_branch_name = new_start_branch_name
end
def execute(target_project, target_branch, straight: false)
# If compare with other project we need to fetch ref first
target_project.repository.with_repo_branch_commit(
base_project.repository,
base_branch_name) do |commit|
start_project.repository,
start_branch_name) do |commit|
break unless commit
compare(commit.sha, target_project, target_branch, straight)

View file

@ -3,8 +3,8 @@ module Files
class ValidationError < StandardError; end
def execute
@base_project = params[:base_project] || @project
@base_branch = params[:base_branch]
@start_project = params[:start_project] || @project
@start_branch = params[:start_branch]
@target_branch = params[:target_branch]
@commit_message = params[:commit_message]
@ -22,7 +22,7 @@ module Files
# Validate parameters
validate
# Create new branch if it different from base_branch
# Create new branch if it different from start_branch
validate_target_branch if different_branch?
result = commit
@ -38,7 +38,7 @@ module Files
private
def different_branch?
@base_branch != @target_branch || @base_project != @project
@start_branch != @target_branch || @start_project != @project
end
def file_has_changed?
@ -59,7 +59,7 @@ module Files
end
unless project.empty_repo?
unless @base_project.repository.branch_exists?(@base_branch)
unless @start_project.repository.branch_exists?(@start_branch)
raise_error('You can only create or edit files when you are on a branch')
end

View file

@ -8,8 +8,8 @@ module Files
branch_name: @target_branch,
author_email: @author_email,
author_name: @author_name,
base_project: @base_project,
base_branch_name: @base_branch)
start_project: @start_project,
start_branch_name: @start_branch)
end
def validate

View file

@ -10,8 +10,8 @@ module Files
update: false,
author_email: @author_email,
author_name: @author_name,
base_project: @base_project,
base_branch_name: @base_branch)
start_project: @start_project,
start_branch_name: @start_branch)
end
def validate
@ -34,7 +34,7 @@ module Files
unless project.empty_repo?
@file_path.slice!(0) if @file_path.start_with?('/')
blob = repository.blob_at_branch(@base_branch, @file_path)
blob = repository.blob_at_branch(@start_branch, @file_path)
if blob
raise_error('Your changes could not be committed because a file with the same name already exists')

View file

@ -8,8 +8,8 @@ module Files
branch_name: @target_branch,
author_email: @author_email,
author_name: @author_name,
base_project: @base_project,
base_branch_name: @base_branch)
start_project: @start_project,
start_branch_name: @start_branch)
end
end
end

View file

@ -10,8 +10,8 @@ module Files
actions: params[:actions],
author_email: @author_email,
author_name: @author_name,
base_project: @base_project,
base_branch_name: @base_branch
start_project: @start_project,
start_branch_name: @start_branch
)
end
@ -63,7 +63,7 @@ module Files
end
def last_commit
Gitlab::Git::Commit.last_for_path(repository, @base_branch, @file_path)
Gitlab::Git::Commit.last_for_path(repository, @start_branch, @file_path)
end
def regex_check(file)

View file

@ -9,8 +9,8 @@ module Files
previous_path: @previous_path,
author_email: @author_email,
author_name: @author_name,
base_project: @base_project,
base_branch_name: @base_branch)
start_project: @start_project,
start_branch_name: @start_branch)
end
private
@ -25,7 +25,7 @@ module Files
def last_commit
@last_commit ||= Gitlab::Git::Commit.
last_for_path(@base_project.repository, @base_branch, @file_path)
last_for_path(@start_project.repository, @start_branch, @file_path)
end
end
end

View file

@ -46,23 +46,23 @@ class GitOperationService
end
end
# Whenever `base_branch_name` is passed, if `branch_name` doesn't exist,
# it would be created from `base_branch_name`.
# If `base_project` is passed, and the branch doesn't exist,
# it would try to find the base from it instead of current repository.
# Whenever `start_branch_name` is passed, if `branch_name` doesn't exist,
# it would be created from `start_branch_name`.
# If `start_project` is passed, and the branch doesn't exist,
# it would try to find the commits from it instead of current repository.
def with_branch(
branch_name,
base_branch_name: nil,
base_project: repository.project,
start_branch_name: nil,
start_project: repository.project,
&block)
check_with_branch_arguments!(
branch_name, base_branch_name, base_project)
branch_name, start_branch_name, start_project)
update_branch_with_hooks(branch_name) do
repository.with_repo_branch_commit(
base_project.repository,
base_branch_name || branch_name,
start_project.repository,
start_branch_name || branch_name,
&block)
end
end
@ -148,27 +148,27 @@ class GitOperationService
end
def check_with_branch_arguments!(
branch_name, base_branch_name, base_project)
branch_name, start_branch_name, start_project)
return if repository.branch_exists?(branch_name)
if repository.project != base_project
unless base_branch_name
if repository.project != start_project
unless start_branch_name
raise ArgumentError,
'Should also pass :base_branch_name if' +
' :base_project is different from current project'
'Should also pass :start_branch_name if' +
' :start_project is different from current project'
end
unless base_project.repository.branch_exists?(base_branch_name)
unless start_project.repository.branch_exists?(start_branch_name)
raise ArgumentError,
"Cannot find branch #{branch_name} nor" \
" #{base_branch_name} from" \
" #{base_project.path_with_namespace}"
" #{start_branch_name} from" \
" #{start_project.path_with_namespace}"
end
elsif base_branch_name
unless repository.branch_exists?(base_branch_name)
elsif start_branch_name
unless repository.branch_exists?(start_branch_name)
raise ArgumentError,
"Cannot find branch #{branch_name} nor" \
" #{base_branch_name} from" \
" #{start_branch_name} from" \
" #{repository.project.path_with_namespace}"
end
end