git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC] Design for http-pull on repo with packs
@ 2005-07-10 18:42 Daniel Barkalow
  2005-07-10 19:56 ` Dan Holmsand
  0 siblings, 1 reply; 9+ messages in thread
From: Daniel Barkalow @ 2005-07-10 18:42 UTC (permalink / raw)
  To: git

I have a design for using http-pull on a packed repository, and it only
requires one extra file in the repository: an append-only list of the pack
files (because getting the directory listing is very painful and
failure-prone).

The first thing to note is that fetch() is allowed to get more than just
the requested object. This means that we can get the pack file with the
requested object, and this will fulfill the contract of fetch(), and,
hopefully, be extra-helpful (since we expect the repository owner to have
packed stuff together usefully). So I do this:

 Try to get individual files. So long as this works, everything is as
  before.

 If an individual file is not available, figure out what packs are
  available:

   Get the list of pack files the repository has
    (currently, I just use "e3117bbaf6a59cb53c3f6f0d9b17b9433f0e4135")
   For any packs we don't have, get the index files.
   Keep a list of the struct packed_gits for the packs the server has
    (these are not used as places to look for objects)

 Each time we need an object, check the list for it. If it is in there,
  download the corresponding pack and report success.

I've nearly got an implementation ready, except for not having a way of
getting a list of available packs. It seems to work for getting
e3117bbaf6a59cb53c3f6f0d9b17b9433f0e4135 when necessary, although I'm
still debugging the last few things.

	-Daniel
*This .sig left intentionally blank*

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2005-07-12 17:24 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-07-10 18:42 [RFC] Design for http-pull on repo with packs Daniel Barkalow
2005-07-10 19:56 ` Dan Holmsand
2005-07-10 20:29   ` Daniel Barkalow
2005-07-10 21:39     ` Dan Holmsand
2005-07-11  3:18   ` Junio C Hamano
2005-07-11 15:53     ` Dan Holmsand
2005-07-11 17:08       ` Tony Luck
2005-07-11 23:30       ` Junio C Hamano
2005-07-12 17:21         ` Dan Holmsand

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).