What I'm after is a "user model". By that I mean an understanding of
what state Darcs maintains, but in only enough detail for a user to make
sense of. That's more like what Simon M calls "declarative properties".
Notice that this does *not* mean implementation detail.
Example of what I mean:
* A Darcs repository is a collection of patches
* When you 'record', you add a new patch to your local Darcs repo,
without changing your working files.
* A patch A "depends on" another patch B if (a) B modifies the same
lines as A does, and (b) B was in your repository when you recorded A.
This is important if you, say, want to get patch A (because then you
must pull B too). Similarly unrecording B entails unrecording A.
* A patch A "conflicts with" a patch B if they both modify the same
lines of a file, but neither depends on the other.
etc
|