Skip to content
Snippets Groups Projects
Commit e7b54b9c authored by GitalyBot's avatar GitalyBot Committed by Bob Van Landuyt :neckbeard:
Browse files

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.
parent d6c7d4c4
No related branches found
No related tags found
No related merge requests found
1.48.0
1.49.0
---
title: Upgrade to Gitaly v1.49.0
merge_request: 29990
author:
type: changed
Loading
Loading
@@ -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
Loading
Loading
Loading
Loading
@@ -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
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment