Skip to content

Delphi 1.2.0: worktrees get their own store, separate from the repos/ clone - #77

Merged
bracyw merged 3 commits into
mainfrom
claude/default-branch-worktree
Oct 19, 2026
Merged

bracyw merged 3 commits into
mainfrom
claude/default-branch-worktree

Conversation

@bracyw

@bracyw bracyw commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Changes

repos/<name> stays a plain clone of its own, and no worktrees are made from it. setup.sh also fetches each repo into a separate bare store at worktrees/<name>/.bare and checks out the default branch there (for Argos, worktrees/argos/develop). new-worktree.sh and the skill scripts that manage worktrees use only that store. The workspace CLAUDE.md copies say to work in worktrees.

Diagram

flowchart LR
  subgraph Before["Before (1.1.0)"]
    Y1["workspace.yml repos:"] --> C1["repos/argos<br/>plain clone, on develop"]
    C1 -.->|"new-worktree.sh"| F1["worktrees/argos/#lt;branch#gt;"]
  end
  subgraph After["After (1.2.0)"]
    Y2["workspace.yml repos:"] --> C2["repos/argos<br/>plain clone, on develop<br/>(no worktrees)"]
    Y2 --> S2["worktrees/argos/.bare<br/>bare store, its own fetch"]
    S2 --> D2["worktrees/argos/develop<br/>made by setup.sh"]
    S2 -.->|"new-worktree.sh"| F2["worktrees/argos/#lt;branch#gt;"]
  end
  N["Both: repos/ and worktrees/ are git-ignored<br/>(.git/info/exclude), never tracked or committed"]
Loading

Testing

  • e2e: setup.sh leaves repos/<repo> on its default branch with no worktrees, and makes worktrees/<repo>/.bare plus the default worktree; re-run restores a deleted default worktree
  • e2e: an older bare store or plain clone in repos/ (and its worktrees) is left as it is, and the new store is added beside it
  • e2e: new-worktree.sh never touches repos/<repo> (no worktrees, no branch)
  • e2e: park/switch/workspaces: tests check the default worktree and its store

Notes

MINOR with no migration: an older bare store at repos/<name> is left as it is, as in 1.1.0. Delete it and re-run setup to get a plain clone. Cost: each repo is fetched twice, once for the clone and once for the store. The dependabot-cleanup and address-pr-comments scripts now use the store.

Checklist

  • ci/check.sh . and bash tests/e2e.sh pass
  • Version bumped if a .delphi/manifest.yml file changed
  • No merge conflicts
  • Request reviewers & ping on Slack

🤖 Generated with Claude Code

https://claude.ai/code/session_019JfJ7chmBadZ9hkhEGFN2h

The clone at repos/<name> is detached at the same commit if it was on that branch, so the branch
can live at worktrees/<name>/<default-branch>. CLAUDE.md copies point the model at worktrees.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019JfJ7chmBadZ9hkhEGFN2h
@bracyw bracyw added the by: ai-assisted Written by a person with AI help label Oct 19, 2026 — with Claude
@bracyw
bracyw marked this pull request as draft October 19, 2026 00:12
@bracyw bracyw added by: ai Written by AI and removed by: ai-assisted Written by a person with AI help labels Oct 19, 2026 — with Claude
setup.sh keeps repos/<name> a plain clone and, separately, makes worktrees/<name>/.bare plus the
default-branch worktree; new-worktree.sh and skill scripts use that store. Replaces detaching the
clone. Migration 2.0.0 moves an old bare store at repos/<name> there, worktrees intact.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019JfJ7chmBadZ9hkhEGFN2h
@bracyw bracyw changed the title Delphi 1.2.0: check out each repo's default branch as a worktree again Delphi 2.0.0: worktrees get their own store, separate from the repos/ clone Oct 19, 2026
An older bare store at repos/<name> is left as it is (as 1.1.0 did); setup.sh adds the store in
worktrees/ beside it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019JfJ7chmBadZ9hkhEGFN2h
@bracyw bracyw changed the title Delphi 2.0.0: worktrees get their own store, separate from the repos/ clone Delphi 1.2.0: worktrees get their own store, separate from the repos/ clone Oct 19, 2026
@bracyw
bracyw marked this pull request as ready for review October 19, 2026 00:26
@bracyw
bracyw merged commit 83731b1 into main Oct 19, 2026
2 checks passed
@bracyw
bracyw deleted the claude/default-branch-worktree branch October 19, 2026 15:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

by: ai Written by AI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants