Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlejandro Rodríguez <alejorro70@gmail.com>2018-07-09 06:19:05 +0300
committerAlejandro Rodríguez <alejorro70@gmail.com>2018-07-09 06:19:05 +0300
commit6651aae0d1874e13b4dc0b0cddaadb4b289ca0af (patch)
treec28c937cc114f46682c107b00c4ad84554d629a0
parent6f96f5888a8598f30434f1253b1aa34cb7798ae7 (diff)
parent2b3e855a612992f96d5db27ed4bf41931243f2cd (diff)
Merge branch 'vendor-gitlab-git-20180707' into 'master'
Vendor gitlab-git at b14b31b819f0f09d73e001 See merge request gitlab-org/gitaly!792
-rwxr-xr-x_support/vendor-gitlab-git12
-rw-r--r--changelogs/unreleased/vendor-gitlab-git-20180707.yml5
-rw-r--r--ruby/lib/gitlab/git/commit.rb29
-rw-r--r--ruby/lib/gitlab/git/commit_stats.rb (renamed from ruby/vendor/gitlab_git/lib/gitlab/git/commit_stats.rb)17
-rw-r--r--ruby/lib/gitlab/git/conflict/resolver.rb (renamed from ruby/vendor/gitlab_git/lib/gitlab/git/conflict/resolver.rb)24
-rw-r--r--ruby/vendor/gitlab_git/REVISION2
-rw-r--r--ruby/vendor/gitlab_git/lib/gitlab/git/commit.rb14
-rw-r--r--ruby/vendor/gitlab_git/lib/gitlab/git/repository.rb25
-rw-r--r--ruby/vendor/gitlab_git/lib/gitlab/git/tree.rb10
9 files changed, 57 insertions, 81 deletions
diff --git a/_support/vendor-gitlab-git b/_support/vendor-gitlab-git
index 124128ef5..a7b1c3745 100755
--- a/_support/vendor-gitlab-git
+++ b/_support/vendor-gitlab-git
@@ -9,6 +9,12 @@ FILE_LIST = %w[
lib/gitlab/version_info.rb
].freeze
+# We have (already) stopped vendoring these files.
+EXCLUDE = %w[
+ lib/gitlab/git/commit_stats.rb
+ lib/gitlab/git/conflict/resolver.rb
+].freeze
+
REMOTE = 'https://gitlab.com/gitlab-org/gitlab-ce'.freeze
# This directory in Gitaly will be the 'root' of gitlab-ce
@@ -32,7 +38,11 @@ def main
FileUtils.rm_rf(VENDOR_DIR)
FileUtils.mkdir_p(VENDOR_DIR)
- run!(%w[rsync -avR] + FILE_LIST + %W[#{File.join(Dir.pwd, VENDOR_DIR)}/], gitlab_dir)
+ args = %w[rsync -avR]
+ args += EXCLUDE.map { |e| "--exclude=#{e}" }
+ args += FILE_LIST
+ args += %W[#{File.join(Dir.pwd, VENDOR_DIR)}/]
+ run!(args, gitlab_dir)
end
File.write(File.join(VENDOR_DIR, 'REVISION'), "#{revision_sha}\n")
diff --git a/changelogs/unreleased/vendor-gitlab-git-20180707.yml b/changelogs/unreleased/vendor-gitlab-git-20180707.yml
new file mode 100644
index 000000000..b1f483888
--- /dev/null
+++ b/changelogs/unreleased/vendor-gitlab-git-20180707.yml
@@ -0,0 +1,5 @@
+---
+title: Vendor gitlab-git at b14b31b819f0f09d73e001
+merge_request: 792
+author:
+type: other
diff --git a/ruby/lib/gitlab/git/commit.rb b/ruby/lib/gitlab/git/commit.rb
index 229a11fc4..fc3ff70b0 100644
--- a/ruby/lib/gitlab/git/commit.rb
+++ b/ruby/lib/gitlab/git/commit.rb
@@ -2,6 +2,35 @@ module Gitlab
module Git
class Commit
class << self
+ def find(repo, commit_id = "HEAD")
+ # Already a commit?
+ return commit_id if commit_id.is_a?(Gitlab::Git::Commit)
+
+ # A rugged reference?
+ commit_id = Gitlab::Git::Ref.dereference_object(commit_id)
+ return decorate(repo, commit_id) if commit_id.is_a?(Rugged::Commit)
+
+ # Some weird thing?
+ return nil unless commit_id.is_a?(String)
+
+ # This saves us an RPC round trip.
+ return nil if commit_id.include?(':')
+
+ commit = rugged_find(repo, commit_id)
+
+ decorate(repo, commit) if commit
+ rescue Rugged::ReferenceError, Rugged::InvalidError, Rugged::ObjectError,
+ Gitlab::Git::CommandError, Gitlab::Git::Repository::NoRepository,
+ Rugged::OdbError, Rugged::TreeError, ArgumentError
+ nil
+ end
+
+ def rugged_find(repo, commit_id)
+ obj = repo.rev_parse_target(commit_id)
+
+ obj.is_a?(Rugged::Commit) ? obj : nil
+ end
+
def shas_with_signatures(repository, shas)
shas.select do |sha|
begin
diff --git a/ruby/vendor/gitlab_git/lib/gitlab/git/commit_stats.rb b/ruby/lib/gitlab/git/commit_stats.rb
index 8463b1eb7..b899ef867 100644
--- a/ruby/vendor/gitlab_git/lib/gitlab/git/commit_stats.rb
+++ b/ruby/lib/gitlab/git/commit_stats.rb
@@ -1,5 +1,3 @@
-# Gitaly note: JV: 1 RPC, migration in progress.
-
# Gitlab::Git::CommitStats counts the additions, deletions, and total changes
# in a commit.
module Gitlab
@@ -16,20 +14,7 @@ module Gitlab
@deletions = 0
@total = 0
- repo.gitaly_migrate(:commit_stats) do |is_enabled|
- if is_enabled
- gitaly_stats(repo, commit)
- else
- rugged_stats(commit)
- end
- end
- end
-
- def gitaly_stats(repo, commit)
- stats = repo.gitaly_commit_client.commit_stats(@id)
- @additions = stats.additions
- @deletions = stats.deletions
- @total = @additions + @deletions
+ rugged_stats(commit)
end
def rugged_stats(commit)
diff --git a/ruby/vendor/gitlab_git/lib/gitlab/git/conflict/resolver.rb b/ruby/lib/gitlab/git/conflict/resolver.rb
index c3cb02641..2d904e784 100644
--- a/ruby/vendor/gitlab_git/lib/gitlab/git/conflict/resolver.rb
+++ b/ruby/lib/gitlab/git/conflict/resolver.rb
@@ -12,29 +12,13 @@ module Gitlab
end
def conflicts
- @conflicts ||= begin
- @target_repository.gitaly_migrate(:conflicts_list_conflict_files) do |is_enabled|
- if is_enabled
- gitaly_conflicts_client(@target_repository).list_conflict_files.to_a
- else
- rugged_list_conflict_files
- end
- end
- end
- rescue GRPC::FailedPrecondition => e
- raise Gitlab::Git::Conflict::Resolver::ConflictSideMissing.new(e.message)
+ @conflicts = rugged_list_conflict_files
rescue Rugged::ReferenceError, Rugged::OdbError, GRPC::BadStatus => e
raise Gitlab::Git::CommandError.new(e)
end
def resolve_conflicts(source_repository, resolution, source_branch:, target_branch:)
- source_repository.gitaly_migrate(:conflicts_resolve_conflicts) do |is_enabled|
- if is_enabled
- gitaly_conflicts_client(source_repository).resolve_conflicts(@target_repository, resolution, source_branch, target_branch)
- else
- rugged_resolve_conflicts(source_repository, resolution, source_branch, target_branch)
- end
- end
+ rugged_resolve_conflicts(source_repository, resolution, source_branch, target_branch)
end
def conflict_for_path(conflicts, old_path, new_path)
@@ -58,10 +42,6 @@ module Gitlab
end
end
- def gitaly_conflicts_client(repository)
- repository.gitaly_conflicts_client(@our_commit_oid, @their_commit_oid)
- end
-
def write_resolved_file_to_index(repository, index, file, params)
if params[:sections]
resolved_lines = file.resolve_lines(params[:sections])
diff --git a/ruby/vendor/gitlab_git/REVISION b/ruby/vendor/gitlab_git/REVISION
index 5dc20c23d..e1635629c 100644
--- a/ruby/vendor/gitlab_git/REVISION
+++ b/ruby/vendor/gitlab_git/REVISION
@@ -1 +1 @@
-bdb64ac0a1396a7624adaf0670bb1bf4ad105b56
+b14b31b819f0f09d73e001a80acd528aad913dc9
diff --git a/ruby/vendor/gitlab_git/lib/gitlab/git/commit.rb b/ruby/vendor/gitlab_git/lib/gitlab/git/commit.rb
index c67826da1..36d56e411 100644
--- a/ruby/vendor/gitlab_git/lib/gitlab/git/commit.rb
+++ b/ruby/vendor/gitlab_git/lib/gitlab/git/commit.rb
@@ -63,12 +63,8 @@ module Gitlab
# This saves us an RPC round trip.
return nil if commit_id.include?(':')
- commit = repo.gitaly_migrate(:find_commit) do |is_enabled|
- if is_enabled
- repo.gitaly_commit_client.find_commit(commit_id)
- else
- rugged_find(repo, commit_id)
- end
+ commit = repo.wrapped_gitaly_errors do
+ repo.gitaly_commit_client.find_commit(commit_id)
end
decorate(repo, commit) if commit
@@ -78,12 +74,6 @@ module Gitlab
nil
end
- def rugged_find(repo, commit_id)
- obj = repo.rev_parse_target(commit_id)
-
- obj.is_a?(Rugged::Commit) ? obj : nil
- end
-
# Get last commit for HEAD
#
# Ex.
diff --git a/ruby/vendor/gitlab_git/lib/gitlab/git/repository.rb b/ruby/vendor/gitlab_git/lib/gitlab/git/repository.rb
index 706aa7343..bbfe6ab1d 100644
--- a/ruby/vendor/gitlab_git/lib/gitlab/git/repository.rb
+++ b/ruby/vendor/gitlab_git/lib/gitlab/git/repository.rb
@@ -251,7 +251,6 @@ module Gitlab
# Returns an Array of Tags
#
- # Gitaly migration: https://gitlab.com/gitlab-org/gitaly/issues/390
def tags
wrapped_gitaly_errors do
gitaly_ref_client.tags
@@ -602,17 +601,9 @@ module Gitlab
# @repository.submodule_url_for('master', 'rack')
# # => git@localhost:rack.git
#
- # Gitaly migration: https://gitlab.com/gitlab-org/gitaly/issues/329
def submodule_url_for(ref, path)
- Gitlab::GitalyClient.migrate(:submodule_url_for) do |is_enabled|
- if is_enabled
- gitaly_submodule_url_for(ref, path)
- else
- if submodules(ref).any?
- submodule = submodules(ref)[path]
- submodule['url'] if submodule
- end
- end
+ wrapped_gitaly_errors do
+ gitaly_submodule_url_for(ref, path)
end
end
@@ -837,22 +828,14 @@ module Gitlab
# Ex.
# repo.ls_files('master')
#
- # Gitaly migration: https://gitlab.com/gitlab-org/gitaly/issues/327
def ls_files(ref)
gitaly_commit_client.ls_files(ref)
end
- # Gitaly migration: https://gitlab.com/gitlab-org/gitaly/issues/328
def copy_gitattributes(ref)
- Gitlab::GitalyClient.migrate(:apply_gitattributes) do |is_enabled|
- if is_enabled
- gitaly_copy_gitattributes(ref)
- else
- rugged_copy_gitattributes(ref)
- end
+ wrapped_gitaly_errors do
+ gitaly_repository_client.apply_gitattributes(ref)
end
- rescue GRPC::InvalidArgument
- raise InvalidRef
end
def info_attributes
diff --git a/ruby/vendor/gitlab_git/lib/gitlab/git/tree.rb b/ruby/vendor/gitlab_git/lib/gitlab/git/tree.rb
index b6ceb542d..cb851b76a 100644
--- a/ruby/vendor/gitlab_git/lib/gitlab/git/tree.rb
+++ b/ruby/vendor/gitlab_git/lib/gitlab/git/tree.rb
@@ -1,5 +1,3 @@
-# Gitaly note: JV: needs 1 RPC, migration is in progress.
-
module Gitlab
module Git
class Tree
@@ -17,12 +15,8 @@ module Gitlab
def where(repository, sha, path = nil, recursive = false)
path = nil if path == '' || path == '/'
- Gitlab::GitalyClient.migrate(:tree_entries) do |is_enabled|
- if is_enabled
- repository.gitaly_commit_client.tree_entries(repository, sha, path, recursive)
- else
- tree_entries_from_rugged(repository, sha, path, recursive)
- end
+ repository.wrapped_gitaly_errors do
+ repository.gitaly_commit_client.tree_entries(repository, sha, path, recursive)
end
end