Here is an idea which I think we should attribute to Petr.
http://wiki.darcs.net/Ideas/Snapshots
The fleshing out is mine, so don't blame him if I said anything stupid
in that page.
We need a way to make darcs get/pull faster. Packs might be one way to
go about it, but they involve (a) quite a bit of implementation and (b)
a potential format change.
This is an idea for a completely backward-compatible means of achieving
a faster darcs get/pull.
The idea is to create a single "snapshot" that represents the
_darcs/pristine.hashed _darcs/patches and _darcs/inventories that
corresponds to the last tag, basically a tarball.
When darcs clients do a get/pull, they check to see if the snapshot
exists, and if so, fetch, expand, and proceed as normal. By virtue of
darcs's pre-existing cache architecture (in which only files that aren't
in a local cache get fetched), only the handful of files not covered by
the snapshot should be retrieved.
Variant to this idea: have two snapshots, one for pristine (darcs get
--lazy) and one for patches and inventories (darcs get; darcs pull).
We need to have a discussion on darcs-users on what may cause us to
regret implementing something like this, if at all.
|