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@xxxxxxxxx> 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:
signature.asc
Description: PGP signature