Re: [RFC/PATCH] worktree: replace "checkout --to" with "worktree new"
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Jul 1, 2015, 06:37 UTC
- Message-ID
- <CAPig+cSM5VH9e8T_Bee1d_2GB2ZZpvygKh7_19BJHnifiNp5CA@mail.gmail.com>
- In-Reply-To
- <CAPig+cT7X=LOtgYjXWx=EBJpMrytntQHgdSzdN=prqaysanaCw@mail.gmail.com>
On Tue, Jun 30, 2015 at 6:02 PM, Eric Sunshine <sunshine@sunshineco.com> wrote:
Show 17 quoted lines
> On Tue, Jun 30, 2015 at 5:23 AM, Duy Nguyen <pclouds@gmail.com> wrote: >> On Tue, Jun 30, 2015 at 11:56 AM, Eric Sunshine <sunshine@sunshineco.com> wrote: >>> The command "git checkout --to <path>" is something of an anachronism, >>> encompassing functionality somewhere between "checkout" and "clone". >>> The introduction of the git-worktree command, however, provides a proper >>> and intuitive place to house such functionality. Consequently, >>> re-implement "git checkout --to" as "git worktree new". >> >> "git worktree new" definitely makes sense (maybe stick with verbs like >> "create", I'm not sure if we have some convention in existing >> commands), but should we remove "git checkout --to"? I could do "git >> co -b foo --to bar" for example. > > You can still do that with "git worktree new bar -b foo", which is > effectively the same as "git checkout --to bar -b foo" (with > s/checkout/worktree/ and s/--to/new/ applied), though perhaps you > don't find it as obvious or natural.
I had never understood why you chose to plug the linked-worktree functionality into git-checkout via --to, but this usage pattern (creating a new branch and checking it out into a new worktree as one operation) goes a long way toward explaining why you consider git-checkout a proper home for linked-worktree creation. I don't think that justification was ever mentioned when the series was being presented (or, if it was, I must have missed it). Now it makes much more sense, and I can better appreciate your desire to keep "git checkout --to" as an alias for "git worktree add". Thanks for explaining it.
(Having said that, replacing "git checkout --to" with "git worktree add" still seems a preferable first step, while keeping open the door to re-add "git checkout --to" later if we become convinced that it's worthwhile.)