Let trigger checkouts fall back to copying across filesystems #58

Merged
lucas merged 1 commit from 57-trigger-checkout-fails-across-filesystems-git-clone-local-exdev into main 2026-10-22 17:22:17 +02:00
Collaborator

createCheckout cloned the workspace with an explicit git clone --local. That makes git exit with a fatal error when hardlinking fails because the checkout root and the workspace are on different filesystems (EXDEV), so the checkout for trigger 1104699d-7f89-4cd6-83c4-72116bf5da2f on PR #56 failed. Dropping the flag keeps hardlinks when both are on the same filesystem and falls back to copying otherwise (git builtin/clone.c, copy_or_link_directory). The module doc comment is updated to match.

Verification

  • bun test apps/server/src/forgejo/checkout.test.ts: 9 pass, 0 fail (same-filesystem behaviour).
  • Cross-filesystem case not exercised here: no permanent test, per the plan (it needs two mounts). To check it after deploying, post a new comment on PR #56; a session should start without "could not prepare a checkout".

Closes #57

`createCheckout` cloned the workspace with an explicit `git clone --local`. That makes git exit with a fatal error when hardlinking fails because the checkout root and the workspace are on different filesystems (EXDEV), so the checkout for trigger `1104699d-7f89-4cd6-83c4-72116bf5da2f` on PR #56 failed. Dropping the flag keeps hardlinks when both are on the same filesystem and falls back to copying otherwise (git `builtin/clone.c`, `copy_or_link_directory`). The module doc comment is updated to match. ## Verification - `bun test apps/server/src/forgejo/checkout.test.ts`: 9 pass, 0 fail (same-filesystem behaviour). - Cross-filesystem case not exercised here: no permanent test, per the plan (it needs two mounts). To check it after deploying, post a new comment on PR #56; a session should start without "could not prepare a checkout". Closes #57
An explicit `git clone --local` dies with EXDEV when the checkout root and
the workspace are on different filesystems. Without the flag git still
hardlinks local-path clones when it can and copies otherwise.

Co-Authored-By: Claude Opus 5.5 via omp-deck
lucas approved these changes 2026-10-22 17:22:12 +02:00
Author
Collaborator

omp-deck failed to handle this event: an internal error occurred.

Details are in omp-deck under webhook delivery 34f6e559-d0d9-4395-9e35-1a3b865c5c34.

omp-deck failed to handle this event: an internal error occurred. Details are in omp-deck under webhook delivery `34f6e559-d0d9-4395-9e35-1a3b865c5c34`.
lucas merged commit b303693883 into main 2026-10-22 17:22:17 +02:00
lucas deleted branch 57-trigger-checkout-fails-across-filesystems-git-clone-local-exdev 2026-10-22 17:22:17 +02:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
lucas/omp-deck!58
No description provided.