- Consolidated directory cleanup logic to avoid redundant checks
- Ensure worktree directories are fully removed even when git worktree remove leaves empty folders
- Improved cleanup flow with clearer messaging
- Fixed prompts not showing when deleting worktree from inside
- Improved deletion reliability with file marker approach instead of output parsing
- All stdout/stderr output now flows through naturally without interference
- Enhanced worktree deletion to ensure directories are fully removed
- Added fallback cleanup mechanism if git worktree remove fails
- Added directory verification after deletion attempts
- Improved error handling and debug output for deletion issues
- Added beginner-friendly explanation of git worktrees in README
- Emphasized how simple-worktree improves upon git's cumbersome commands
- Added comprehensive documentation for filesToCopy parameter with examples
- Clarified when to use filesToSync vs filesToCopy with practical use cases
- Fixed "Directory not empty" error when deleting a worktree from inside itself
- Shell function now properly changes to main repository after deletion
- Clarified .gitignore skip message to explicitly state "Not adding to .gitignore" instead of just "already ignored by git"
- Makes it clearer that the action being skipped is adding to the .gitignore file
- New
filesToCopyconfiguration option for copying files once instead of symlinking - Files specified in
filesToCopyare copied to new worktrees on creation - Useful for template files that need to be modified per-worktree (e.g., .env.example)
- Supports same gitignore-style patterns as
filesToSync - Copied files are also added to .gitignore if
addToGitignoreis enabled
- Updated example configuration to include
filesToCopyexamples
- Fixed directory pattern matching in .gitignore detection
- Directories with trailing slashes (like
ai_plans/) now correctly match patterns like**/ai_plans
- Smart .gitignore detection: Now uses
git check-ignoreto detect if files are already ignored before adding them to .gitignore - Prevents redundant .gitignore entries when patterns like
**/CLAUDE.mdalready cover specific files likeapps/web/CLAUDE.md
- Fixed issue where already-ignored files would be unnecessarily added to .gitignore
- Initial release of simple-worktree
createcommand for creating worktrees with automatic file syncingdeletecommand for removing worktrees and returning to main repoinitcommand for installing git hookslistcommand for displaying all worktreescdcommand for navigating to worktrees by namehomecommand for navigating to the main repositoryconfigcommand to manage configuration (swt config --init,swt config --show)- Configuration file support (
swtconfig.toml) using TOML format with:defaultWorktreeDirsetting to customize where worktrees are createdaddToGitignoresetting to control automatic .gitignore updatesfilesToSyncarray for specifying files to sync (gitignore-style syntax with inline comments)
- Automatic .gitignore management: synced symlinks are automatically added to prevent accidental commits
- Pattern matching following
.gitignoreconventions - Git post-checkout hook for automatic syncing
- Short alias
swtfor all commands - Single-letter aliases for common commands:
swt cfor createswt dfor deleteswt lfor listswt ifor initswt hfor home
- Optional shell function installation via
swt initfor automatic directory changing