diff options
author | Alejandro Rodríguez <alejorro70@gmail.com> | 2018-07-09 06:19:05 +0300 |
---|---|---|
committer | Alejandro Rodríguez <alejorro70@gmail.com> | 2018-07-09 06:19:05 +0300 |
commit | 6651aae0d1874e13b4dc0b0cddaadb4b289ca0af (patch) | |
tree | c28c937cc114f46682c107b00c4ad84554d629a0 | |
parent | 6f96f5888a8598f30434f1253b1aa34cb7798ae7 (diff) | |
parent | 2b3e855a612992f96d5db27ed4bf41931243f2cd (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-git | 12 | ||||
-rw-r--r-- | changelogs/unreleased/vendor-gitlab-git-20180707.yml | 5 | ||||
-rw-r--r-- | ruby/lib/gitlab/git/commit.rb | 29 | ||||
-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/REVISION | 2 | ||||
-rw-r--r-- | ruby/vendor/gitlab_git/lib/gitlab/git/commit.rb | 14 | ||||
-rw-r--r-- | ruby/vendor/gitlab_git/lib/gitlab/git/repository.rb | 25 | ||||
-rw-r--r-- | ruby/vendor/gitlab_git/lib/gitlab/git/tree.rb | 10 |
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 |