Unify check branch name exist
This commit is contained in:
parent
74f8f26098
commit
208b18c956
6 changed files with 7 additions and 11 deletions
|
@ -74,7 +74,7 @@ class Projects::ApplicationController < ApplicationController
|
|||
end
|
||||
|
||||
def require_branch_head
|
||||
unless @repository.branch_names.include?(@ref)
|
||||
unless @repository.branch_exists?(@ref)
|
||||
redirect_to(
|
||||
namespace_project_tree_path(@project.namespace, @project, @ref),
|
||||
notice: "This action is not allowed unless you are on a branch"
|
||||
|
|
|
@ -116,7 +116,7 @@ module ApplicationHelper
|
|||
return false if project.merge_requests.where(source_branch: event.branch_name).opened.any?
|
||||
|
||||
# Skip if user removed branch right after that
|
||||
return false unless project.repository.branch_names.include?(event.branch_name)
|
||||
return false unless project.repository.branch_exists?(event.branch_name)
|
||||
|
||||
true
|
||||
end
|
||||
|
|
|
@ -10,7 +10,7 @@ module BranchesHelper
|
|||
end
|
||||
|
||||
def can_push_branch?(project, branch_name)
|
||||
return false unless project.repository.branch_names.include?(branch_name)
|
||||
return false unless project.repository.branch_exists?(branch_name)
|
||||
|
||||
::Gitlab::GitAccess.new(current_user, project).can_push_to_branch?(branch_name)
|
||||
end
|
||||
|
|
|
@ -192,7 +192,7 @@ class Repository
|
|||
end
|
||||
|
||||
def branch_names
|
||||
cache.fetch(:branch_names) { branches.map(&:name) }
|
||||
@branch_names ||= cache.fetch(:branch_names) { branches.map(&:name) }
|
||||
end
|
||||
|
||||
def branch_exists?(branch_name)
|
||||
|
@ -267,6 +267,7 @@ class Repository
|
|||
|
||||
def expire_branches_cache
|
||||
cache.expire(:branch_names)
|
||||
@branch_names = nil
|
||||
@local_branches = nil
|
||||
end
|
||||
|
||||
|
@ -332,10 +333,6 @@ class Repository
|
|||
@lookup_cache ||= {}
|
||||
end
|
||||
|
||||
def expire_branch_names
|
||||
cache.expire(:branch_names)
|
||||
end
|
||||
|
||||
def expire_avatar_cache(branch_name = nil, revision = nil)
|
||||
# Avatars are pulled from the default branch, thus if somebody pushes to a
|
||||
# different branch there's no need to expire anything.
|
||||
|
|
|
@ -487,9 +487,8 @@ class User < ActiveRecord::Base
|
|||
events.recent.find do |event|
|
||||
project = Project.find_by_id(event.project_id)
|
||||
next unless project
|
||||
repo = project.repository
|
||||
|
||||
if repo.branch_names.include?(event.branch_name)
|
||||
if project.repository.branch_exists?(event.branch_name)
|
||||
merge_requests = MergeRequest.where("created_at >= ?", event.created_at).
|
||||
where(source_project_id: project.id,
|
||||
source_branch: event.branch_name)
|
||||
|
|
|
@ -9,7 +9,7 @@ describe MergeWorker do
|
|||
|
||||
before do
|
||||
source_project.team << [author, :master]
|
||||
source_project.repository.expire_branch_names
|
||||
source_project.repository.expire_branches_cache
|
||||
end
|
||||
|
||||
it 'clears cache of source repo after removing source branch' do
|
||||
|
|
Loading…
Reference in a new issue