Re: [RFC/PATCH] shortstatus v1
- From
Jeff King <peff@peff.net>
- Date
- Feb 12, 2009, 00:49 UTC
- Message-ID
- <20090212004921.GD30231@coredump.intra.peff.net>
- In-Reply-To
- <7v3aellwoa.fsf@gitster.siamese.dyndns.org>
On Tue, Feb 10, 2009 at 03:05:57PM -0800, Junio C Hamano wrote:
> There is an obvious optimization you can do to "diff-index --cached" using
> cache-tree. If your index is really clean, computing the tree object the
> index would represent (without writing the tree object out) and comparing
> it against HEAD^{tree} may be a tad faster.Clever, but I think you may just be trading one scenario for "worst case" versus another (i.e., now when you _do_ have a difference to do an early return, you still have to touch everything in the cache).
Just for fun, I timed a quick and dirty implementation. It looks like generating the tree actually ends up taking just a little bit longer, even with an unchanged index (which should be the case it speeds up).
But maybe I just did it wrong. My implementation was basically just:
t = cache_tree();
if (!cache_tree_fully_valid(t))
cache_tree_update(t, active_cache, active_nr, 0, 0);
get_sha1("HEAD", sha1);
return hashcmp(t->sha1, sha1);-Peff