All of lore.kernel.org
 help / color / mirror / Atom feed
From: Erik Johnson <palehose@gmail.com>
To: Jacob Keller <jacob.keller@gmail.com>
Cc: Git mailing list <git@vger.kernel.org>
Subject: Re: git branch doesn't allow me to forcibly delete branch which was checked out in a now-deleted worktree dir
Date: Thu, 7 Jul 2016 19:36:46 -0500	[thread overview]
Message-ID: <20160708003646.GB1916@gmail.com> (raw)
In-Reply-To: <CA+P7+xoM=-=sokA_+WDuY7KYUwSa=Qu8Y9U1aPHOgSH3n-VZnA@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1950 bytes --]

On Thu, Jul 07, 2016 at 04:39:26PM -0700, Jacob Keller wrote:
>On Thu, Jul 7, 2016 at 11:44 AM, Erik Johnson <palehose@gmail.com> wrote:
>> % git branch -D archive-extracted-xz
>> error: Cannot delete branch 'archive-extracted-xz' checked out at
>> '/home/erik/git/salt/archive-extracted-xz'
>> % test -d /home/erik/git/salt/archive-extracted-xz || echo "directory
>> doesn't exist"
>> directory doesn't exist
>> % git --version
>> git version 2.9.0
>>
>> I know that I can just get rid of this error by pruning the worktrees,
>> but this still seems like incorrect behavior on the part of git branch.
>> It shouldn't be telling me that the branch is checked out in a directory
>> that does not exist, that is just factually incorrect.
>>
>
>Until the worktree status is updated git branch probably isn't
>checking itself. It might be worth triggering a worktree prune when
>doing branch work. Note that some worktrees may be on removable media
>or similar, and thus even if the directory doesn't exist right now,
>that does not mean it's no longer checked out. There is already
>support for setting a worktree as "persistent", but this means git
>branch definitely shouldn't just do its own check for non existent
>directory.
>
>Thanks,
>Jake
>

I'm not expecting _any_ git branch command to prune worktrees, but a
branch _deletion_ shouldn't fail because git thinks the branch is
checked out in a worktree that doesn't exist anymore. Even in the
scenario where the worktree corresponding to that branch is on removable
media, does it really matter? You're trying to delete the branch.

I feel like this is a recent change in behavior, too. I've been using
worktrees since they were first available in 2.5, and I don't remember
having to prune to be able to delete the branch until recently.


--

-Erik

"For me, it is far better to grasp the universe as it really is than to
persist in delusion, however satisfying and reassuring."  --Carl Sagan


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

  reply	other threads:[~2016-07-08  0:36 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-07 18:44 git branch doesn't allow me to forcibly delete branch which was checked out in a now-deleted worktree dir Erik Johnson
2016-07-07 23:39 ` Jacob Keller
2016-07-08  0:36   ` Erik Johnson [this message]
2016-07-09  0:41     ` Jacob Keller
2016-07-09  2:22       ` Erik Johnson
2016-07-09  4:58         ` Jacob Keller
2016-07-09  5:05           ` Erik Johnson
2016-07-09  5:33 ` Duy Nguyen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160708003646.GB1916@gmail.com \
    --to=palehose@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=jacob.keller@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.