Subject: Re: git gc fails with "unable to resolve reference" for worktree

From: [email-masked]
Date: Mon, 18 Feb 2019 18:09:06 +0300

On Пн, Feb 18, 2019 at 6:02 PM, Duy Nguyen <[email-masked]> wrote:
> On Mon, Feb 18, 2019 at 9:44 PM <[email-masked]> wrote:
>> 
>>  # Steps to reproduce (in terms of terminal commands)
>> 
>>      $ mkdir foo
>>      $ cd foo
>>      $ git init
>>      Initialized empty Git repository in /tmp/foo/.git/
>>      $ echo hello > testfile
>>      $ git add testfile && git commit -m "my commit1"
>>      [master (root-commit) d5f0b47] my commit1
>>      1 file changed, 1 insertion(+)
>>      create mode 100644 testfile
>>      $ git checkout -b bar
>>      Switched to a new branch 'bar'
>>      $ git worktree add ../bar\ \(worktree\) master
>>      Preparing worktree (checking out 'master')
>>      HEAD is now at d5f0b47 my commit1
>>      $ git gc
>>      error: cannot lock ref 'worktrees/bar (worktree)/HEAD': unable 
>> to
>>  resolve reference 'worktrees/bar (worktree)/HEAD': Invalid argument
> 
> Thanks for reporting. This is not a valid reference and causes the
> problem. The worktree's name has to sanitized. I'll fix it tomorrow.
>> 

You mean, you want to prohibit such directory names as a worktree? But 
it's a proper directory naming, can perhaps git do the sanitizing 
transparently for end-user?