Fix broken worktree test
The setup was wrong, and due to Gitaly being a bit more strict it had to match up. The test is now accurate and passing again.
This commit is contained in:
parent
d6c7d4c48d
commit
e7b54b9cb8
4 changed files with 15 additions and 15 deletions
|
@ -1 +1 @@
|
|||
1.48.0
|
||||
1.49.0
|
||||
|
|
5
changelogs/unreleased/gitaly-version-v1.49.0.yml
Normal file
5
changelogs/unreleased/gitaly-version-v1.49.0.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Upgrade to Gitaly v1.49.0
|
||||
merge_request: 29990
|
||||
author:
|
||||
type: changed
|
|
@ -15,11 +15,6 @@ module Gitlab
|
|||
|
||||
SEARCH_CONTEXT_LINES = 3
|
||||
REV_LIST_COMMIT_LIMIT = 2_000
|
||||
# In https://gitlab.com/gitlab-org/gitaly/merge_requests/698
|
||||
# We copied these two prefixes into gitaly-go, so don't change these
|
||||
# or things will break! (REBASE_WORKTREE_PREFIX and SQUASH_WORKTREE_PREFIX)
|
||||
REBASE_WORKTREE_PREFIX = 'rebase'.freeze
|
||||
SQUASH_WORKTREE_PREFIX = 'squash'.freeze
|
||||
GITALY_INTERNAL_URL = 'ssh://gitaly/internal.git'.freeze
|
||||
GITLAB_PROJECTS_TIMEOUT = Gitlab.config.gitlab_shell.git_timeout
|
||||
EMPTY_REPOSITORY_CHECKSUM = '0000000000000000000000000000000000000000'.freeze
|
||||
|
|
|
@ -2038,24 +2038,24 @@ describe Gitlab::Git::Repository, :seed_helper do
|
|||
end
|
||||
|
||||
describe '#clean_stale_repository_files' do
|
||||
let(:worktree_path) { File.join(repository_path, 'worktrees', 'delete-me') }
|
||||
let(:worktree_id) { 'rebase-1' }
|
||||
let(:gitlab_worktree_path) { File.join(repository_path, 'gitlab-worktree', worktree_id) }
|
||||
let(:admin_dir) { File.join(repository_path, 'worktrees') }
|
||||
|
||||
it 'cleans up the files' do
|
||||
create_worktree = %W[git -C #{repository_path} worktree add --detach #{worktree_path} master]
|
||||
create_worktree = %W[git -C #{repository_path} worktree add --detach #{gitlab_worktree_path} master]
|
||||
raise 'preparation failed' unless system(*create_worktree, err: '/dev/null')
|
||||
|
||||
FileUtils.touch(worktree_path, mtime: Time.now - 8.hours)
|
||||
FileUtils.touch(gitlab_worktree_path, mtime: Time.now - 8.hours)
|
||||
# git rev-list --all will fail in git 2.16 if HEAD is pointing to a non-existent object,
|
||||
# but the HEAD must be 40 characters long or git will ignore it.
|
||||
File.write(File.join(worktree_path, 'HEAD'), Gitlab::Git::BLANK_SHA)
|
||||
|
||||
# git 2.16 fails with "fatal: bad object HEAD"
|
||||
expect(rev_list_all).to be false
|
||||
File.write(File.join(admin_dir, worktree_id, 'HEAD'), Gitlab::Git::BLANK_SHA)
|
||||
|
||||
expect(rev_list_all).to be(false)
|
||||
repository.clean_stale_repository_files
|
||||
|
||||
expect(rev_list_all).to be true
|
||||
expect(File.exist?(worktree_path)).to be_falsey
|
||||
expect(rev_list_all).to be(true)
|
||||
expect(File.exist?(gitlab_worktree_path)).to be_falsey
|
||||
end
|
||||
|
||||
def rev_list_all
|
||||
|
|
Loading…
Reference in a new issue