fb6a4e21d4
This brings back some of the changes in https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/20339. For users using Gitaly on top of NFS, accessing the Git data directly via Rugged is more performant than Gitaly. This merge request introduces the feature flag `rugged_find_commit` to activate Rugged paths. There are also Rake tasks `gitlab:features:enable_rugged` and `gitlab:features:disable_rugged` to enable/disable these feature flags altogether. Part of four Rugged changes identified in https://gitlab.com/gitlab-org/gitlab-ce/issues/57317.
31 lines
1,022 B
Ruby
Executable file
31 lines
1,022 B
Ruby
Executable file
#!/usr/bin/env ruby
|
|
|
|
ALLOWED = [
|
|
# Needed to handle repositories that are not in any storage
|
|
'lib/gitlab/bare_repository_import/repository.rb',
|
|
|
|
# Needed to avoid using the git binary to validate a branch name
|
|
'lib/gitlab/git_ref_validator.rb',
|
|
|
|
# Reverted Rugged calls due to Gitaly atop NFS performance
|
|
# See https://docs.gitlab.com/ee/development/gitaly.html#legacy-rugged-code.
|
|
'lib/gitlab/git/rugged_impl/',
|
|
'lib/gitlab/gitaly_client/storage_settings.rb'
|
|
].freeze
|
|
|
|
rugged_lines = IO.popen(%w[git grep -i -n rugged -- app config lib], &:read).lines
|
|
rugged_lines = rugged_lines.select { |l| /^[^:]*\.rb:/ =~ l }
|
|
rugged_lines = rugged_lines.reject { |l| l.start_with?(*ALLOWED) }
|
|
rugged_lines = rugged_lines.reject { |l| /(include|prepend) Gitlab::Git::RuggedImpl/ =~ l}
|
|
rugged_lines = rugged_lines.reject do |line|
|
|
code, _comment = line.split('# ', 2)
|
|
code !~ /rugged/i
|
|
end
|
|
|
|
exit if rugged_lines.empty?
|
|
|
|
puts "Using Rugged is only allowed in test and #{ALLOWED}\n\n"
|
|
|
|
puts rugged_lines
|
|
|
|
exit(false)
|