From: Junio C Hamano Date: Tue, 05 Feb 2008 23:43:55 GMT Subject: Re: [PATCH 2/9] Add flag to make unpack_trees() not print errors. Message-ID: <7v7ihj7yv8.fsf@gitster.siamese.dyndns.org> In-Reply-To: Daniel Barkalow writes: > On Tue, 5 Feb 2008, Johannes Schindelin wrote: > ... >> > Additionally, if unpack_trees() returns with an error, but without >> > printing anything, it will roll back any changes to the index (by >> > rereading the index, currently). This obviously could be done by the >> > caller, but chances are that the caller would forget and debugging this >> > is difficult. >> >> Granted, it is easy to forget. But maybe the caller does not need the >> index? Or maybe it wants a different one? I'd prefer the caller to clean >> up, if necessary. > > That's what makes it "gently" instead of just "silent"; it has no effect > if it doesn't succeed. Longer term, I'd like to have unpack_trees() unpack > into a separate index, which should actually be faster (since it doesn't > have to keep shifting the entries in the index it's working on) and make > this moot. Absolutely. That is the original motivation I did the_index thing for. But "re-reading" may not be quite nice. It would defeat the optimization introduced by the change to use CE_UPTODATE flag to avoid unnecessary lstat(2) calls.