Subject: Re: [PATCH v3 10/11] contrib: remove "git-new-workdir"

From: "Kristoffer Haugsbakk" <[email-masked]>
Date: Mon, 08 Sep 2025 11:58:48 +0200

On Mon, Sep 8, 2025, at 11:28, Gabriel Scherer wrote:
> Dear git developers,
>
> I find myself affected by the removal of the `git-new-workdir` script
> which is a relatively common part of my workflow. I am writing to ask
> if it might be possible to reinstate the script in `contrib`, and also
> possibly create a discussion with other users affected.
>
> (The removal of the script was released in git 2.51, three weeks ago.)

Did you run into this issue when upgrading from 2.50 to 2.51 or from an
older version?  Was it simple to troubleshoot that the script was gone?

Just curious.  I’m as naïve about release management as any
random person!

>
>
> Thanks for your work on git!
>
>
> ## Details/comments
>
>  > The command thus predates git-worktree(1), which is what people use
>  > nowadays to create any such working directory. As such, the script
>  > doesn't really have much of a reason to exist nowadays anymore.
>
> `git worktree` suffers from the substantial restriction that it is not
> allowed for two worktrees to checkout the same branch.

You can override that restriction with `--force`.[1]

† 1: Naming override options just `--force` has some UX issues like
    discoverability and the fact that (in this case) it is used for
    multiple orthogonal things

> I understand
> why its designers felt that this would provide better guarantees (it
> is not a good idea to mutate branch names that are checked out
> somewhere else), but checking out various branches to test them and
> inspect their code (before returning to the feature branch I am
> actively working on) is a common part of my workflow.

I agree, that’s a great use of worktrees.  But I never feel like I have
to checkout the branch itself.  I detach on top of the branch.

> Getting a 'fatal
> error' because some other, independent worktree also checked this
> branch out is a hindrance.
>
> Note: I don't know about the `worktree` implementation and whether the
>[snip]