提交 b462edfd 编写于 作者: S Stan Hu

Merge branch '40291-ignore-hashed-repos-cleanup-repositories' into 'master'

ignore hashed repos (for now) when using `rake gitlab:cleanup:repos`

Closes #40291

See merge request gitlab-org/gitlab-ce!15520
......@@ -59,7 +59,10 @@ namespace :gitlab do
.sub(%r{^/*}, '')
.chomp('.git')
.chomp('.wiki')
next if Project.find_by_full_path(repo_with_namespace)
# TODO ignoring hashed repositories for now. But revisit to fully support
# possible orphaned hashed repos
next if repo_with_namespace.start_with?('@hashed/') || Project.find_by_full_path(repo_with_namespace)
new_path = path + move_suffix
puts path.inspect + ' -> ' + new_path.inspect
......
require 'rake_helper'
describe 'gitlab:cleanup rake tasks' do
before do
Rake.application.rake_require 'tasks/gitlab/cleanup'
end
context 'cleanup repositories' do
let(:gitaly_address) { Gitlab.config.repositories.storages.default.gitaly_address }
let(:storages) do
{
'default' => { 'path' => Settings.absolute('tmp/tests/default_storage'), 'gitaly_address' => gitaly_address }
}
end
before do
FileUtils.mkdir(Settings.absolute('tmp/tests/default_storage'))
allow(Gitlab.config.repositories).to receive(:storages).and_return(storages)
end
after do
FileUtils.rm_rf(Settings.absolute('tmp/tests/default_storage'))
end
it 'moves it to an orphaned path' do
FileUtils.mkdir_p(Settings.absolute('tmp/tests/default_storage/broken/project.git'))
run_rake_task('gitlab:cleanup:repos')
repo_list = Dir['tmp/tests/default_storage/broken/*']
expect(repo_list.first).to include('+orphaned+')
end
it 'ignores @hashed repos' do
FileUtils.mkdir_p(Settings.absolute('tmp/tests/default_storage/@hashed/12/34/5678.git'))
run_rake_task('gitlab:cleanup:repos')
expect(Dir.exist?(Settings.absolute('tmp/tests/default_storage/@hashed/12/34/5678.git'))).to be_truthy
end
end
end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册