diff options
| author | Robert Speicher <robert@gitlab.com> | 2017-08-04 15:46:36 +0000 |
|---|---|---|
| committer | Robert Speicher <robert@gitlab.com> | 2017-08-04 15:46:36 +0000 |
| commit | e299d595c790c355eff9d3719dce824e8380f983 (patch) | |
| tree | 2c9de74e60a92e05eb0986146007c216575157f9 /lib | |
| parent | 7e45159f0d8b2e0b6963f40f1a2a54ec1171a2c0 (diff) | |
| parent | f81c07eacc6c37092b13559dcaf479805138eb45 (diff) | |
| download | gitlab-ce-e299d595c790c355eff9d3719dce824e8380f983.tar.gz | |
Merge branch 'feature/migrate-last-commit-for-path-to-gitaly' into 'master'
Migrate Repository#last_commit_for_path to Gitaly
Closes gitaly#433
See merge request !13200
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/gitlab/git/repository.rb | 5 | ||||
| -rw-r--r-- | lib/gitlab/gitaly_client/commit_service.rb | 14 |
2 files changed, 19 insertions, 0 deletions
diff --git a/lib/gitlab/git/repository.rb b/lib/gitlab/git/repository.rb index 1c3beb5e834..734aed8fbc1 100644 --- a/lib/gitlab/git/repository.rb +++ b/lib/gitlab/git/repository.rb @@ -1006,6 +1006,11 @@ module Gitlab end.sort_by(&:name) end + def last_commit_for_path_by_rugged(sha, path) + sha = last_commit_id_for_path(sha, path) + commit(sha) + end + def tags_from_gitaly gitaly_ref_client.tags end diff --git a/lib/gitlab/gitaly_client/commit_service.rb b/lib/gitlab/gitaly_client/commit_service.rb index 1ae13677b42..ac6817e6d0e 100644 --- a/lib/gitlab/gitaly_client/commit_service.rb +++ b/lib/gitlab/gitaly_client/commit_service.rb @@ -97,6 +97,20 @@ module Gitlab GitalyClient.call(@repository.storage, :commit_service, :count_commits, request).count end + def last_commit_for_path(revision, path) + request = Gitaly::LastCommitForPathRequest.new( + repository: @gitaly_repo, + revision: revision.force_encoding(Encoding::ASCII_8BIT), + path: path.to_s.force_encoding(Encoding::ASCII_8BIT) + ) + + gitaly_commit = GitalyClient.call(@repository.storage, :commit_service, :last_commit_for_path, request).commit + return unless gitaly_commit + + commit = GitalyClient::Commit.new(@repository, gitaly_commit) + Gitlab::Git::Commit.new(commit) + end + def between(from, to) request = Gitaly::CommitsBetweenRequest.new( repository: @gitaly_repo, |
