On Fri Nov 29, 2024 at 5:44 PM CST, rsbecker wrote: > On November 29, 2024 6:29 PM, Caleb White wrote: >>On Fri Nov 29, 2024 at 5:17 PM CST, rsbecker wrote: >>> On November 29, 2024 6:14 PM, Caleb White writes: >>>>On Fri Nov 29, 2024 at 4:54 PM CST, rsbecker wrote: >>>>> General comment on this series: Is there a mechanism of preserving >>>>> existing functionality for those of us who have existing scripts >>>>> that depend on the existing branch and worktree naming? >>>> >>>>Existing worktrees will continue to work as they do now. The only >>>>change is the worktree id for new worktrees. However, there's not an >>>>option to preserve the existing behavior for new worktrees (nor do I think there >>should be). >>> >>> I do not agree. Companies that have existing scripts should have some >>> way to preserve their investment. Just saying "No more worktrees for >>> you" is not really considerate. >> >>How exactly are your scripts depending on the worktree id? There are very few >>reasons a script might need to know the worktree id, and I suspect that there's >>some confusion here. The worktree name is still used with the `git worktree` >>commands, so there no change on that front. > > The graphic describing this showed the id in addition to the worktree name. > During cleanup detection, the directory of the worktree is significant. If that > Observation is wrong, I retract all this. So here's the graphic again: foo/ ├── .git/worktrees/develop-5445874156/ └── develop/ Here, the `develop` directory is the worktree directory (this can be located anywhere), and the `develop-5445874156` is the worktree id. However, the worktree id can already be something like `develop1` or something else entirely if the `develop` directory was renamed in the past. Again, there are very few things a script should need to know the worktree id for. If the `develop` directory is deleted, cleanup detection is handled by the `git worktree prune` command, which will remove worktrees under `.git/worktrees/*` that are no longer valid. This happens automatically after the expiry time or it can be executed manually. Of course, executing `git worktree remove develop` will also remove the worktree and its associated worktree id. Best, Caleb