From: Junio C Hamano Date: Mon, 25 Feb 2008 07:59:15 GMT Subject: Re: [PATCH 1/4] add generic, type aware object chain walker Message-ID: <7vskzhmppo.fsf@gitster.siamese.dyndns.org> In-Reply-To: <20080225074611.GC15761@auto.tuwien.ac.at> mkoegler@auto.tuwien.ac.at (Martin Koegler) writes: > On Sun, Feb 24, 2008 at 07:08:39PM -0800, Junio C Hamano wrote: > ... >> > + while (parents) { >> > + result = walk((struct object*)parents->item, OBJ_COMMIT, data); >> > + if (result) >> > + return result; >> > + parents = parents->next; >> > + } >> > + return 0; >> > +} >> >> Hmm. For the purpose of proving there is _no_ error (or an >> error or more), it would be Ok to return early like this, but >> won't there be cases where you would want to get as many >> coverage as possible? >> >> For example, I do not think you can use this to mark reachable >> objects. Even if you find error walking the first parent >> history, you would want to still mark a healthy second parent >> history reachable. > > How should I define the return value of fsck_walk in the presence of > multiple errors? Returning error is fine. That is not what I was talking about. I was talking about an early return in the code, that does not callback once you find an error.