From: Alex Riesen Date: Sun, 01 Jul 2007 16:40:16 GMT Subject: Re: [PATCH] git-clone: fetch possibly detached HEAD over dumb http Message-ID: <20070701164016.GA3661@steel.home> In-Reply-To: <7vy7i0amnn.fsf@assigned-by-dhcp.cox.net> Junio C Hamano, Sun, Jul 01, 2007 04:22:04 +0200: > Alex Riesen writes: > > > The check for .git validity includes checking if HEAD contains > > something sane, and this check is very simple: the HEAD is read > > (readlink(2) or plain read(2)) and tested if it contains a > > reference starting with "refs/", which maybe inconsistent with > > resolve_gitlink_ref, but probably ok. > > Ah, I was not paying close attention to resolve_gitlink_ref(); > if it does not require HEAD to point at refs/ I would say it is > a bug. yes, thats why I think its ok. > Come to think of it, I would further say that we probably should > tighten it up a bit: HEAD must be either a valid commit object > name (i.e. detached) That (HEAD must point to a _valid_ commit) will make accidentally corrupted repositories harder to fix. The tool which require a valid repository (cat-file, update-ref, read-tree) are the same tools which you need to fix small problems which can happen, like the commit pointed by HEAD is accidentally pruned from parent repo.