About darcs darcs repo as an darcs usage example...

Ian Lynagh igloo at earth.li
Wed Mar 11 17:31:47 EDT 2009

On Wed, Mar 11, 2009 at 01:32:21AM +0100, Petr Rockai wrote:
> PPS: I am fairly inclined to "rebase" gorsvet upon camp-core. I understand
> reasons behind camp-repository's simplicity. However, I believe that it would
> very much make sense for the repository code to be worked on by a different
> person than the core code (while retaining the simplistic repository code for
> core testing).

It would certainly be possible to use a replacement camp-repository
package instead of mine. If I split the repository package into
repository-primary and repository-secondary packages[1] (and perhaps
that would be a good idea anyway) then there might not even be a
significant amount of code duplicated.

Currently you would need to make some changes to camp-bin as well, but
perhaps that just means that the boundary isn't in quite the right
place. For example, the record command does
    directory <- recordDirectory (inRepoPath r pristineDir) "."
to diff pristine and working, whereas that would probably need to be
changed to
    directory <- Repository.record r
or something to handle hashed pristines.

Here are some random numbers, incidentally:

SLOC    Directory       SLOC-by-Language (Sorted)
1532    camp-core       haskell=1532
819     camp-repository haskell=819
473     camp-bin        haskell=473
396     tests           sh=396
309     camp-view       haskell=309
19      camp-network    ansic=17,haskell=2

[1] There's more detail on what primary and secondary means here:
    but essentially, the primary part of a repo is the bit you need to
    understand about a remote repo, while you also need to understand
    the secondary part of a local repo. Hashed pristine would be a grey
    area, I guess; you don't strictly need to understand them to get a
    remote repo, but it's beneficial if you do.


More information about the Camp mailing list