
Simon Marlow wrote:
But what worries me is: if I just want to check out e.g. Haddock, I have to get the entire fptools repo (350M+, wasn't it?). I can build a source distribution with just the bits I want, but I can't get a darcs tree with anything but the whole lot.
So, here's two potential solutions:
1. Make it possible to 'darcs get' just part of a tree. Patches that don't touch any files in the "live" parts of the tree are discarded. (I don't know if this is possible, or how difficult it is).
I like this solution, especially now that David says that it is not impossible to do. In general I think it is a good idea to be able to get a part of the tree -- this might be very useful to handle big projects like the linux kernel where many developers just need to touch tiny parts of the repository. However, I think that darcs should never "discard" patches: all patches are always applied, and record works just as it normally works. The only difference is that the absent part of the tree is treated as an unobservable part of the tree -- patch applications to absent parts of the tree are just void operations as they can not be observed. In this design, a "darcs get" on a part of the tree is like building a special view on the tree. (As such, the tree should probably still always start from the root -- one would not be able to just get a bunch of leaves) In this setup, I think darcs will still be able to transparently handle patches that touch present and absent parts of the tree, and also moves from absent to present parts etc. In general, this feature might allow darcs to overcome most efficiency problems associated with large repositories. Alas, I do not know how much effort this feature might take (and I do not volunteer to do it), but it does seem a potentially important one. All the best, -- Daan Leijen.
2. Create separate repositories for GHC, Happy, Haddock etc., and duplicate the shared fptools structure in each project. Each time we modify something in the shared part of the tree, we pull the patch into the other trees. (is it possible to cherry-pick from a tree that doesn't have a common ancestor? If not, can we make the repositories appear to have common ancestry?).
Cheers, Simon
_______________________________________________ darcs-users mailing list darcs-users@darcs.net http://www.abridgegame.org/mailman/listinfo/darcs-users