From: Junio C Hamano Date: Fri, 08 Dec 2006 07:36:52 GMT Subject: Re: cygwin, 44k files: how to commit only index? Message-ID: <7vhcw6n8iz.fsf@assigned-by-dhcp.cox.net> In-Reply-To: <81b0412b0612072327x77477584jb9131b26b0854f2@mail.gmail.com> "Alex Riesen" writes: >> 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'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.