From: Ed Tomlinson Date: Fri, 25 Nov 2005 02:50:59 GMT Subject: Re: Linux 2.6.15-rc2 Message-ID: <200511242151.00162.tomlins@cam.org> In-Reply-To: <20051124195256.GR3968@reactrix.com> On Thursday 24 November 2005 14:52, Nick Hengeveld wrote: > On Thu, Nov 24, 2005 at 10:37:15AM -0800, Linus Torvalds wrote: > > > I just repacked and updated it now, so how http should work too, although > > inefficiently (because it will get a whole new pack - just one of the > > disadvantages of the non-native protocols). > > There's room to improve on that particular inefficiency. The http > commit walker could use Range: headers to fetch loose objects directly > from inside a pack if it didn't make sense to fetch the entire pack. > For this to work, pack fetches would need to be deferred until the > entire tree had been walked, and the commit walker could decide whether > to fetch the pack or loose objects based on the percentage of packed > objects it needed to fetch. It would also need to fetch all > tag/commit/tree objects using ranges to be able to fully walk the tree. Alternately, when creating a new archive the client could ask the server what protocols are active. It could then use the best one for the clone and update the .git/origin files with the optimal one for incremental pulls. Thoughts? Ed Tomlinson