On Wed, Oct 26, 2005 at 04:59:06PM -0400, Kurt Hutchinson wrote: > I've read the description of checkpointing (darcs optimize > --checkpoint) in the manual, but I don't understand how it works. I'm > just curious. If a tag depends on all patches currently in the repo, > how does that minimize the amount you have to download with a 'get'? > Won't you just be getting every patch back to the beginning of the > project (because they're all dependencies, either directly or > indirectly)?
This only works with partial repos (darcs get --partial). The repo "history" (not time based) information is split into patches and inventory. The inventory lists what patches the repo contains and describes how they are combined. The patches just contain the individual changes. Darcs can do a lot of things with only the inventory. A checkpoint is a special patch that represents the total change of all patches up to the tag (and is usually much smaller then all the original patches together). When darcs creates a partial repo it fetches the checkpoint and applies it, which has the same result as would have applying the real patches one after another. Darcs also fetches and installs the inventory. Now it looks like the real patches are there and dependencies are thus seemingly fulfilled. The "fake" is unveiled as soon as darcs wants to examine the contents of one of the missing patches, which may be never, depending on what kind of work you do with the repo. -- Tommy Pettersson <[EMAIL PROTECTED]> _______________________________________________ darcs-users mailing list [email protected] http://www.abridgegame.org/mailman/listinfo/darcs-users
