diff options
author | Filipa Lacerda <filipa@gitlab.com> | 2017-12-20 10:25:09 +0000 |
---|---|---|
committer | Filipa Lacerda <filipa@gitlab.com> | 2017-12-20 10:25:09 +0000 |
commit | fd1811d36434df0d030ad7e35d595f1dd1bca5ea (patch) | |
tree | 8ea9071cee778b5a6de3fb41bb81b26104153213 /lib | |
parent | 30ea58dabb8ea468c355b3456cf4fc14576a6e07 (diff) | |
parent | febb0b9a8014f5b480ff7baab1d189fce49210a5 (diff) | |
download | gitlab-ce-fd1811d36434df0d030ad7e35d595f1dd1bca5ea.tar.gz |
Merge branch 'master' into layout-nav-es-modulelayout-nav-es-module
* master: (21 commits)
Prevent some specs from mangling the gitlab-shell checkout
Line up search dropdown with other nav dropdowns
Fix onion-skin re-entering state
Remove related links in MR widget when empty state
Show inline edit button for issues
Fix tags in the Activity tab not being clickable
Fix shortcut links on help page
Don't link LFS-objects multiple times.
[CE->EE] Fix spec/lib/gitlab/git/gitlab_projects_spec.rb
Tidy up the documentation of Gitlab HA/Gitlab Application
Make sure two except won't overwrite each other
Update axios.md
Remove transitionend event from GL dropdown
Preserve gem path so that we use the same gems
Load commit in batches for pipelines#index
BlobViewer::PackageJson - if private link to homepage
Do not generate links for private NPM modules in blob view
Remove block styling from search dropdown
Fix sidebar height when performance bar enabled
Remove all dropdown animations and set display: none if they're not open
...
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gitlab/git/commit.rb | 13 | ||||
-rw-r--r-- | lib/gitlab/gitaly_client/commit_service.rb | 9 |
2 files changed, 22 insertions, 0 deletions
diff --git a/lib/gitlab/git/commit.rb b/lib/gitlab/git/commit.rb index e90b158fb34..145721dea76 100644 --- a/lib/gitlab/git/commit.rb +++ b/lib/gitlab/git/commit.rb @@ -228,6 +228,19 @@ module Gitlab end end end + + # Only to be used when the object ids will not necessarily have a + # relation to each other. The last 10 commits for a branch for example, + # should go through .where + def batch_by_oid(repo, oids) + repo.gitaly_migrate(:list_commits_by_oid) do |is_enabled| + if is_enabled + repo.gitaly_commit_client.list_commits_by_oid(oids) + else + oids.map { |oid| find(repo, oid) }.compact + end + end + end end def initialize(repository, raw_commit, head = nil) diff --git a/lib/gitlab/gitaly_client/commit_service.rb b/lib/gitlab/gitaly_client/commit_service.rb index 7985f5b5457..fb3e27770b4 100644 --- a/lib/gitlab/gitaly_client/commit_service.rb +++ b/lib/gitlab/gitaly_client/commit_service.rb @@ -169,6 +169,15 @@ module Gitlab consume_commits_response(response) end + def list_commits_by_oid(oids) + request = Gitaly::ListCommitsByOidRequest.new(repository: @gitaly_repo, oid: oids) + + response = GitalyClient.call(@repository.storage, :commit_service, :list_commits_by_oid, request, timeout: GitalyClient.medium_timeout) + consume_commits_response(response) + rescue GRPC::Unknown # If no repository is found, happens mainly during testing + [] + end + def commits_by_message(query, revision: '', path: '', limit: 1000, offset: 0) request = Gitaly::CommitsByMessageRequest.new( repository: @gitaly_repo, |