Re: [PATCH 00/16] worktree: use "git reset --hard" to populate worktree
- From
Duy Nguyen <pclouds@gmail.com>
- Date
- Jul 15, 2015, 09:59 UTC
- Message-ID
- <CACsJy8DF_GXgmZWJ-1iOvoy6SD6kj6u=zprbQA9k6W-Ev6V38w@mail.gmail.com>
- In-Reply-To
- <CAPig+cTXAdGFmq+QkNAgmHJuZgM6-Ckg_-StrTQUxmJSpX4=Qg@mail.gmail.com>
On Wed, Jul 15, 2015 at 1:48 PM, Eric Sunshine <sunshine@sunshineco.com> wrote:
Show 6 quoted lines
>> - check_linked_checkout() when trying to decide what branch is >> checked out assumes HEAD is always a regular file, but I do not >> think we have dropped the support of SYMLINK_HEAD yet. It needs >> to check st_mode and readlink(2), like resolve_ref_unsafe() does. > > Hmm, I wasn't aware of SYMLINK_HEAD (and don't know if Duy was). The
I'm aware of it. I just didn't remember it when I wrote this code.
Show 5 quoted lines
> related code in resolve_ref_unsafe() is fairly involved, worrying > about race conditions and such, however, I guess > check_linked_checkout()'s implementation can perhaps be simpler, as > it's probably far less catastrophic for it to give the wrong answer > (or just die) under such a race?
And if I remember correctly Mike Haggerty had a series to refactor ref parsing code and reuse in this place (it was my promise to do it, but he took over). I think the series was halted because refs.c was going through a major update at that time. I think we could leave it as is for now and completely replace it at some point in future.
-- Duy