From: Junio C Hamano Date: Mon, 26 Aug 2013 06:03:54 GMT Subject: Re: [PATCHv2] write_index: optionally allow broken null sha1s Message-ID: In-Reply-To: <20130825195412.GA2752@elie.Belkin> Jonathan Nieder writes: > In other words, why not use something like this? > > write_index: optionally allow broken null sha1s > > Commit 4337b58 (do not write null sha1s to on-disk index, 2012-07-28) > added a safety check preventing git from writing null sha1s into the > index. The intent was to catch errors in other parts of the code that > might let such an entry slip into the index (or worse, a tree). > > Some existing repositories have some invalid trees that contain null > sha1s already, though. Until 4337b58, a common way to clean this up > would be to use git-filter-branch's index-filter to repair such broken > entries. That now fails when filter-branch tries to write out the > index. > > Introduce a GIT_ALLOW_NULL_SHA1 environment variable to relax this check > and make it easier to recover from such a history. I found this version more readable than Peff's (albeit slightly). > After this patch, do you think (in a separate change) it would make > sense for cache-tree.c::update_one() to check for null sha1 and error > out unless GIT_ALLOW_NULL_SHA1 is true? That would let us get rid of > the caveat from the last paragraph. Hmm, interesting thought.