fix(migrate): preserve checkout and shell semantics

This commit is contained in:
Mohamed Boudra
2026-07-19 00:48:41 +02:00
parent ddaaaa27be
commit c54ddfd07f
7 changed files with 167 additions and 22 deletions
-11
View File
@@ -1226,7 +1226,6 @@ export const createWorktree = async ({
paseoHome,
worktreesRoot,
}: CreateWorktreeOptions): Promise<WorktreeConfig> => {
await pruneVerifiedStaleWorktrees(cwd);
const sourcePlan = await resolveWorktreeSourcePlan({ cwd, source, desiredSlug: worktreeSlug });
let worktreePath = join(await getPaseoWorktreesRoot(cwd, paseoHome, worktreesRoot), worktreeSlug);
mkdirSync(dirname(worktreePath), { recursive: true });
@@ -1284,16 +1283,6 @@ export const createWorktree = async ({
};
};
async function pruneVerifiedStaleWorktrees(cwd: string): Promise<void> {
const { stdout } = await runGitCommand(["worktree", "list", "--porcelain"], {
cwd,
envOverlay: READ_ONLY_GIT_ENV,
});
const hasStaleRegistration = parseWorktreeList(stdout).some((entry) => !existsSync(entry.path));
if (!hasStaleRegistration) return;
await runGitCommand(["worktree", "prune"], { cwd, timeout: 30_000 });
}
interface ResolveWorktreeSourcePlanOptions {
cwd: string;
source: WorktreeSource;