Skip to content

Add support for manually located/created worktrees - #73

Merged
nnutter merged 4 commits into
masterfrom
manual
Oct 6, 2026
Merged

nnutter merged 4 commits into
masterfrom
manual

Conversation

@nnutter

@nnutter nnutter commented Oct 6, 2026

Copy link
Copy Markdown
Owner

No description provided.

Git's worktree records allow every command to find checkouts outside
the default layout. Keep branch identity separate from the public
worktree name so directory-derived names do not change Git operations.

Preserve names for existing standard-layout checkouts and reserve
explicit names recorded in each checkout's Git directory. Manual
checkouts use progressively longer path suffixes to resolve conflicts
within a repository.
Custom checkout parents belong to the user, not Timber's layout, so
removal must leave them intact. Prune retains selected worktree
identities because removing a conflicting checkout can change the
directory-derived names of the remaining checkouts.

Force removal must also work for manual branches without an upstream;
only non-force removal needs cleanliness and merge checks. Verify that
repository renames retain custom paths and keep them addressable.
Users can place a checkout where their workflow needs it without
losing Timber's lifecycle commands or shell integration. Resolve
relative destinations against the invocation directory and record the
explicit or generated name in worktree-scoped Git metadata.

Reserve visible names before creating another checkout and include
custom checkouts when choosing generated names. Complete the second
argument as a directory while retaining existing name completion for
the first argument.
Custom-location and manual worktrees cannot be located from their
names alone. Let users show checkout paths without widening the
default listing. The location column stays last when PR status is
also requested; JSON output already includes the path.
@nnutter
nnutter enabled auto-merge October 6, 2026 20:46
@nnutter
nnutter merged commit 1b09062 into master Oct 6, 2026
1 check passed
@nnutter
nnutter deleted the manual branch October 6, 2026 20:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant