On Wed, Jul 15, 2015 at 1:48 PM, Eric Sunshine <sunshine@xxxxxxxxxxxxxx> wrote: >> - 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. > 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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html