From: Shawn O. Pearce Date: Sun, 05 Apr 2009 20:36:04 GMT Subject: Re: [EGIT PATCH 5/5] Cache resolved ids in quickdiff document for faster update Message-ID: <20090405203604.GP23521@spearce.org> In-Reply-To: <1238697991-12990-6-git-send-email-robin.rosenberg@dewire.com> Robin Rosenberg wrote: > We do this by caching the commit, tree and blob ids and can then > very quickly decide whether a change in baseline actually results in a > changed version of the reference blob used for quickdiff. ... > @@ -31,6 +34,11 @@ > > class GitDocument extends Document implements RepositoryListener { > private final IResource resource; > + > + private AnyObjectId lastCommit; > + private AnyObjectId lastTree; > + private AnyObjectId lastBlob; Should have been "ObjectId"; I amended the patch. > + Commit baselineCommit = repository.mapCommit(commitId); > + Tree baselineTree = baselineCommit.getTree(); > + TreeEntry blobEntry = baselineTree.findBlobMember(gitPath); Arrrgh. We're still using Commit/Tree/TreeEntry to read file paths? I'm applying this as-is, but we really need to start to transition away from them. I wanted to start deleting the mapCommit and its friends from the Repository class. -- Shawn.