This series makes the core of the pull programs parallel. It should not
actually make any difference yet. It arranges to call prefetch() for each
object as soon as it is determined to be needed, and then call fetch() on
each object once there is nothing left to prefetch. By implementing
prefetch(), an implementation can make additional requests while waiting
for the data from the earlier ones to come in. Additionally, fetch() will
be called in the same order that prefetch() was called, so the
implementation can just make a series of requests and get responses.
If anyone else is also interested in working on this, it could go into
-pu; I've tested it reasonably well, and I'm pretty sure that it doesn't
have any effect until the implementations are changed to have prefetch()
do something. I'm working on support for it in ssh-pull, and haven't
started looking at http-pull support.
1: Adds support to the struct object code to produce struct objects when
the type is unknown and the content is unavailable; this allocates
memory for the union of the supported types, so it is slightly less
efficient, but allows the pull code to track objects it doesn't know
anything about (such as the targets to tags).
2: Parallelizes the pull algorithm.
-Daniel
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html