"Shawn O. Pearce" <spearce@xxxxxxxxxxx> writes: > Luke Kenneth Casson Leighton <luke.leighton@xxxxxxxxx> wrote: > > * would you, or anyone else with enough knowledge of how this stuff > > reaallly works, be willing to put some low-priority back-of-mind > > thought into how to create a "canonical" pack format > > We have. We've even talked about it on the mailing list. Multiple > times. Most times about how to support a p2p Git transport. > That whole GitTorrent thing you are ignoring, we put some effort > into coming up with a pack-like format that would be more stable, > at the expense of being larger in total size. If I remember it correctly the main idea of GitTorrent was instead of dividing file into pieces of data like in BitTorrent (pieces being downloaded in parallel from different peers) it divides set of objects into "reels" (which are special case of bundles, IIRC). > > questions (not necessarily for nicolas) - can anyone think of any > > good reasons _other_ than for multiple file-sharing to have a > > "canonical" pack-object? > > Yes, its called resuming a clone over git://. > > Right now if you abort git:// you break the pack stream, and it > cannot be restarted. If we had a more consistent encoding we may > be able to restart an aborted clone. > > But we can't solve it. Its a _very_ hard problem. > > Nico, myself, and a whole lot of other very smart folks who really > understand how Git works today have failed to identify a way to do > this that we actually want to write, include in git, and maintain > long-term. Sure, anyone can come up with a specification that says > "put this here, that there, break ties this way". But we don't > want to bind our hands and maintain those rules. If I remember the discussion stalled (i.e. no working implementation), and one of the latest proposals was to have some way of recovering objects from partially downloaded file, and a way to request packfile without objects that got already downloaded. IIRC. -- Jakub Narebski Poland ShadeHawk on #git -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html