On Thu, Sep 12, 2013 at 09:42:41AM +0200, Josef Wolf wrote:
> > >> There are some work being done to optimize this further using
> > >> various techniques, but they are not ready yet.
> > And this still stands.
> Do you have a pointer or something? I'd like to check out whether I can
> contribute to this work.
I think Junio is referring to the reachability bitmap work. We may know
that the other side has commit "E" (and therefore every object reachable
from it), but we do not walk the graph to find the complete set of
reachable objects. Doing so requires a lot of CPU and I/O, and in most
cases does not help much.
However, if we had an index of reachable objects (e.g., a bitmap) for
each commit, then we could very cheaply compute the set difference
between what the other side wants and what they have.
JGit has support for pack bitmaps already. There was a patch series a
few months ago to implement a similar functionality for C git, but the
on-disk format was not compatible with JGit's. That series has been
reworked off-list to be compatible with the JGit implementation.
Those patches need a little cleanup before they are ready for the list,
but hopefully that should happen soon-ish.
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html