From 1b0a84601dd15c07265fd813fb684a34d16e1751 Mon Sep 17 00:00:00 2001 From: nrslib <38722970+nrslib@users.noreply.github.com> Date: Wed, 4 Feb 2026 04:28:07 +0900 Subject: [PATCH] Fix CI test failures by configuring git user in worktree clones Shared clones created with 'git clone --shared' have independent .git directories and don't inherit config from the source repository. This caused 'Author identity unknown' errors when tests tried to commit in worktree directories. Now configure git user.name and user.email in each worktree directory immediately after creation. --- src/__tests__/it-worktree-delete.test.ts | 8 ++++++++ src/__tests__/it-worktree-sessions.test.ts | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/src/__tests__/it-worktree-delete.test.ts b/src/__tests__/it-worktree-delete.test.ts index 09a3c0c..9e3e2e9 100644 --- a/src/__tests__/it-worktree-delete.test.ts +++ b/src/__tests__/it-worktree-delete.test.ts @@ -54,6 +54,10 @@ describe('worktree branch deletion', () => { worktreeDir = join(tmpdir(), branchSlug); execFileSync('git', ['clone', '--shared', testDir, worktreeDir]); + // Configure git user in worktree (shared clones don't inherit config) + execFileSync('git', ['config', 'user.name', 'Test User'], { cwd: worktreeDir }); + execFileSync('git', ['config', 'user.email', 'test@example.com'], { cwd: worktreeDir }); + const branchName = `takt/${branchSlug}`; execFileSync('git', ['checkout', '-b', branchName], { cwd: worktreeDir }); @@ -112,6 +116,10 @@ describe('worktree branch deletion', () => { worktreeDir = join(tmpdir(), branchSlug); execFileSync('git', ['clone', '--shared', testDir, worktreeDir]); + // Configure git user in worktree (shared clones don't inherit config) + execFileSync('git', ['config', 'user.name', 'Test User'], { cwd: worktreeDir }); + execFileSync('git', ['config', 'user.email', 'test@example.com'], { cwd: worktreeDir }); + const branchName = `takt/${branchSlug}`; execFileSync('git', ['checkout', '-b', branchName], { cwd: worktreeDir }); diff --git a/src/__tests__/it-worktree-sessions.test.ts b/src/__tests__/it-worktree-sessions.test.ts index f7fa25e..62d464b 100644 --- a/src/__tests__/it-worktree-sessions.test.ts +++ b/src/__tests__/it-worktree-sessions.test.ts @@ -55,6 +55,10 @@ describe('worktree-sessions recognition', () => { // Create shared clone execFileSync('git', ['clone', '--shared', testDir, worktreeDir]); + // Configure git user in worktree (shared clones don't inherit config) + execFileSync('git', ['config', 'user.name', 'Test User'], { cwd: worktreeDir }); + execFileSync('git', ['config', 'user.email', 'test@example.com'], { cwd: worktreeDir }); + // Create and checkout takt branch in worktree const branchName = `takt/${branchSlug}`; execFileSync('git', ['checkout', '-b', branchName], { cwd: worktreeDir }); @@ -109,6 +113,10 @@ describe('worktree-sessions recognition', () => { worktreeDir = join(tmpdir(), branchSlug); execFileSync('git', ['clone', '--shared', testDir, worktreeDir]); + // Configure git user in worktree (shared clones don't inherit config) + execFileSync('git', ['config', 'user.name', 'Test User'], { cwd: worktreeDir }); + execFileSync('git', ['config', 'user.email', 'test@example.com'], { cwd: worktreeDir }); + const branchName = `takt/${branchSlug}`; execFileSync('git', ['checkout', '-b', branchName], { cwd: worktreeDir });