On 12/8/06, Junio C Hamano <junkio@cox.net> wrote: > >> The current code for "diff-index --cached" reads the whole tree > >> into the index as stage #1 entries (diff-lib.c::run_diff_index), > >> and then compares stage #0 (from the original index contents) > >> and stage #1 (the tree parameter from the command line). Even > >> if you stop at the first mismatch, you would already have paid > >> the overhead to open and read all tree objects before even > >> starting the comparison. > > > > But I don't have to pay for the overhead of comparing all > > entries, if I can stop at first mismatch and exit with non-0. > > Bench it if you doubt me. I don't question that the overhead of comparing is very much unnoticable. It just that it surely isn't zero, and it will grow with the size of repo (linearly, right?)... And I am sure that this repo will _only_ grow (typical corporate project). > I'd bet that the time spent in comparison between stages inside > index (and remember, you are not generating textual diff, only > comparing the SHA-1) is dwarfed by the overhead of populating > the stage #1 of the index with what is read from all the tree > objects. I already understood that. I just haven't found yet what can I do to avoid reading of the whole stage#1 tree. - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.htmlReceived on Fri Dec 08 18:48:22 2006
This archive was generated by hypermail 2.1.8 : 2006-12-08 18:49:29 EST