On Thu, Feb 07, 2008 at 03:26:09PM +0000, Simon Marlow wrote:
> Incedentally, I'm doing a get on this repository right now, and darcs2 has 
> been silent (no progress info at all) for a couple of minutes, even though 
> I can see it downloading stuff... oh, now it says "Identifying repository".

This is rather a tricky scenario:  the hashed_inventory of this repository
takes 36s to download on my computer using wget.  Our current assumption in
the progress-reporting code is that any given download will be fast, and
the result is that this particular operation is going to take a minimum of
36 seconds with no change in progress output.  As it turns out, we download
hashed_inventory twice when we only need download it once, so that slows
things down dramatically.

I can easily get rid of one of these downloads (which is just checking the
format of the repository, something that can more easily be done with a
check of _darcs/format, which always exists for hashed and darcs-2
repositories).  I'd actually also like to cache the contents of
hashed_inventory, in a way that would enable us to guarantee that it's only
downloaded once, which is good both for efficiency and for atomicity (to
make sure we don't use two versions of the remote repository but assume
they're the same).

I'm testing (and planning to push) a patch now that'll cut 36 seconds on
this get for me, by avoiding one download of hashed_inventory, but I don't
see how to avoid a 36s wait with no new progress report without very
dramatically rewriting our libwww/libcurl bindings.
-- 
David Roundy
Department of Physics
Oregon State University
_______________________________________________
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel

Reply via email to