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