Skip to content

Releases: sQVe/grove

v1.8.0

04 Mar 14:57
3d792cc

Choose a tag to compare

Added

  • Recursive directory preservation via preserve.directories config for copying entire directory trees to new worktrees

Fixed

  • Show preserve, link, and hook output when using grove add --switch (#91)

v1.7.0

25 Feb 17:08
0479ea6

Choose a tag to compare

Added

  • Symlink directories from source worktree on grove add via new [link] config section (#87)

Fixed

  • Use directory as worktree identifier in exec, lock, remove, and unlock commands

v1.6.0

03 Feb 09:14
d8b3ec8

Choose a tag to compare

Added

  • Fallback worktree selection by directory name when branch doesn't match, enabling file preservation when primary worktree is on a feature branch (#79)
  • Show worktree directory alongside branch name in prune output for easier identification (#81)

v1.5.0

27 Jan 14:07
34e2299

Choose a tag to compare

Added

  • --json and --verbose flags to grove fetch for structured output and commit hash details (#61)
  • grove fetch command to sync all remotes and display new, updated, and pruned refs (#71)
  • Spinner API with Update, StopWithSuccess, StopWithError methods and StepFormat helper for step/total formatting (#73)
  • grove doctor checks remote accessibility and warns about unreachable remotes
  • Actionable hints to error messages showing recovery commands
  • Real-time hook output streaming during grove add with prefixed lines identifying each hook

Changed

  • grove remove shows summary counts instead of per-item messages (#73)
  • Add spinners to show progress during network operations and improve output consistency across commands

v1.4.0

19 Jan 22:55
172da5a

Choose a tag to compare

Added

  • Configure fetch refspec automatically during clone to enable remote branch tracking
  • grove doctor checks Git and gh versions with upgrade guidance
  • Add --from flag to grove add for specifying source worktree during file preservation
  • Detect old Git versions and hint users to run grove doctor

Fixed

  • Configure upstream tracking automatically when creating worktrees for existing remote branches

v1.3.0

15 Jan 15:46
20c2183

Choose a tag to compare

Added

  • Use relative paths for portable worktrees (requires Git 2.48+)

v1.2.1

15 Jan 11:07
fd13a15

Choose a tag to compare

Fixed

  • Normalize path separators for Windows compatibility

v1.2.0

08 Jan 16:09
ee97758

Choose a tag to compare

Added

  • Add --detached flag to grove prune for detecting and removing worktrees with detached HEAD state (#19)
  • Delete local branches when pruning worktrees with gone upstreams (#20)
  • Add multi-worktree support to remove, lock, and unlock commands (#21)

Changed

  • Migrate build system from Mage to Make for simpler, faster builds (#32)

Fixed

  • Detect multi-commit squash merges via GitHub CLI when pruning
  • Detect diverged PR branches and add --reset flag to sync with remote
  • Preserve files when running grove add from workspace root by falling back to default branch worktree
  • Handle squash-merged branches when pruning gone worktrees

v1.1.0

04 Jan 08:51
v1.1.0
f8f7222

Choose a tag to compare

Added

  • Changelog management with changie and automated release workflow (#11)

Fixed

  • Output logger messages to stderr instead of stdout, fixing --switch flag functionality (#14)

v1.0.0

01 Jan 21:29
v1.0.0
4b49e51

Choose a tag to compare

Changelog

  • a003daa config: disable gocyclo linter due to exclude-rules issues
  • f0417c1 config: increase gocyclo threshold to accommodate test organization
  • 21c4e0b docs(prune): mark command complete in roadmap
  • 3b0105d docs(roadmap): add PR support features for create and clone commands
  • b50bd94 docs(roadmap): add delete, lock, unlock commands and detach support
  • 65b457c docs(roadmap): mark clone branches feature as complete
  • 6b549bc docs(roadmap): remove --follow-remote from rename command
  • 6e9dce7 docs(switch): update help text for shell integration
  • 15c8ac5 feat(add): add --name flag for custom directory name
  • 87ad483 feat(add): improve workspace lock with staleness detection
  • 0966509 feat(add,clone): use pr-N as default directory for PRs
  • 75fe7e0 feat(config): add --shared and --global scope flags
  • 32a9487 feat(config): add TOML config file support
  • 92e97b6 feat(config): resolve shared config from workspace root
  • 77abe25 feat(config): use embedded template for config init
  • fb27e10 feat(convert): implement rollback on conversion failure
  • 176c82e feat(create): add --switch flag for auto-switching to new worktree
  • 64eb0a2 feat(create): add create command for worktree creation
  • deeca1a feat(create): integrate file preservation and hooks
  • f8010f9 feat(doctor): add --fix auto-repair capability
  • 17be723 feat(doctor): add --json machine-readable output
  • 0a145ee feat(doctor): add --perf disk usage analysis
  • 1f99c7d feat(doctor): add command skeleton with output formatting
  • 0040243 feat(doctor): add config validation
  • f94f0b0 feat(doctor): add git issue detection
  • ec2aed0 feat(exec): add command to run commands across worktrees
  • 3327a95 feat(git): add CreateWorktreeWithNewBranch for new branch creation
  • 21925cf feat(git): add ListWorktreesWithInfo function and fix worktree support
  • 6a09dde feat(git): add WorktreeInfo type and GetWorktreeInfo function
  • 5aec7ee feat(git): add configurable timeout for git commands
  • d03b2a1 feat(git): add prune command infrastructure
  • 9bf5648 feat(git): add quiet clone and worktree management functions
  • 2de160a feat(git): add sync status detection (ahead/behind/gone)
  • 905bac8 feat(hooks): add create hooks support
  • f67bfe5 feat(init): add --branches and --verbose flags to clone command
  • 5467ff4 feat(init): add clone subcommand with argument validation
  • 2132973 feat(init): ensure absolute paths for directory arguments
  • e3ec325 feat(list): add list command structure with flags
  • 273bc5b feat(list): implement list command with table and JSON output
  • 6fee611 feat(list): show worktree name as primary identifier
  • aaa15c8 feat(list): wire list command to root
  • 644b0d9 feat(logger): add WorktreeListItem for list command output
  • ce6fc3a feat(logger): add spinner support and improve terminal styling
  • b9be5d5 feat(preserve): add exclude patterns for dependency directories
  • 236d494 feat(prune): add command to remove worktrees with gone upstreams
  • b8ba163 feat(prune): detect stale worktrees by commit age
  • 36b355e feat(status): add command to show current worktree status
  • ca9f381 feat(switch): accept worktree names as primary identifier
  • 99d4f2f feat(switch): add multi-shell support for shell-init
  • 8555d8c feat(switch): add shell-init subcommand for gw function
  • 4daf020 feat(switch): add switch command for worktree navigation
  • 76abd57 feat(switch): extend shell wrapper to handle grove create --switch
  • 2e24a92 feat(workspace): add FindBareDir to find grove workspace root
  • 6db9b06 feat(workspace): add file preservation for worktree creation
  • d10f550 feat(workspace): add multi-branch cloning with branch sanitization
  • 96b54ec feat(workspace): enhance convert command UX
  • e3b8f57 feat: add GitHub PR support for create and clone commands
  • 861c7a4 feat: add TODO for unpushed commits check in Convert function
  • 37b3ef6 feat: add branches support to convert command
  • a9a0519 feat: add cached branch completion for init clone command
  • 99c1223 feat: add configuration and logging infrastructure
  • 28c49d9 feat: add core infrastructure for workspace detection and git cloning
  • c6769e8 feat: add debug logging to internal packages
  • 68209aa feat: add delete command for worktree removal
  • 08dc5d9 feat: add directory completion for init command and improve text consistency
  • 4bea232 feat: add filesystem permission constants for secure operations
  • 2f8b128 feat: add filter, shallow, base, detach, and merged flags
  • 2c03013 feat: add git config wrapper functions
  • 742801d feat: add install script and update installation docs
  • 7d5147b feat: add lock/unlock commands with auto-lock for protected branches
  • 4906a74 feat: add pattern-based unset for multi-value config keys
  • abd7176 feat: add preserve patterns config with proper defaults
  • d09dca3 feat: add rename command for branch and worktree renaming
  • 39755de feat: add styles infrastructure for colored terminal output
  • 3ec25fb feat: add version flag with build metadata
  • c480976 feat: configure TypeScript with Total TypeScript best practices
  • 42fb7ca feat: enhance config completion with dynamic value suggestions
  • 28058c1 feat: enhance logger with styled output and new log levels
  • 635f3eb feat: implement Git repository to Grove workspace conversion
  • 3ab3cb7 feat: implement config command with full subcommand support
  • f2d152c feat: implement config loading from git config
  • 65c09f2 feat: implement file preservation strategy for convert command
  • 2463ae8 feat: implement init clone command
  • 4120581 feat: implement init command with comprehensive tests
  • 1c56c21 feat: implement init convert command with validation
  • 4c5bcca feat: implement init new subcommand for workspace creation
  • c0d4221 feat: implement main CLI with robust error handling
  • cbd7020 feat: improve git error reporting and add ConfigureBare function
  • c065dda feat: improve git repository detection for workspace initialization
  • ac96fe2 feat: make clone a top-level command instead of init subcommand
  • 8478658 fix(add): add Windows support and retry limit to lock acquisition
  • 4bcb930 fix(ci): add init.defaultBranch and gpgsign config for test consistency
  • b8f4945 fix(ci): align tool versions with local development environment
  • 77d54a2 fix(ci): upgrade golangci-lint-action and add git config for tests
  • 61e5e88 fix(clone): create default branch worktree and cleanup on failure
  • 6eee948 fix(clone): disable file completion for --branches flag
  • 68480e6 fix(clone): respect user's preferred git protocol for GitHub URLs
  • c60f4b3 fix(clone): validate directory and cleanup on PR clone failure
  • f3e673c fix(completion): disable file completion for no-arg commands
  • 21c425d fix(completion): improve branch comple...
Read more