Naive questions re hard-linking repositories
Stephen J. Turnbull
stephen at xemacs.org
Wed Apr 15 17:14:43 BST 2009
John Arbash Meinel writes:
> So, a somewhat bigger problem is the "bzr branch plugins/bzrtools"
> effect, where you have a tiny project inside a large one, and this
> suddenly copies the entire repository because you are working on FAT32.
>
> git/hg generally say "don't mix projects in your repo".
In git that's just because the developers are happy with that
workaround. But it's easy enough to implement for any given case.
You make a list of branches you want, and then do git init (not git
clone), and just fetch the branches you need to compose the project
repository. git automatically unpacks just the objects you need, and
then repacks them to send over the wire. Of course this requires
either shell access or a smart server, but it works fine for me (I
don't do multiroot/multiproject repositories, but I do partial
checkouts of this kind from multibranch repositories and it should
work the same in a multiroot repository).
I don't see why the bookkeeping would be too hard to do. The main
problems you'd face would be (1) you'd need to implement a "collection
of revisions" (called "project") bigger than a branch but smaller than
a repository, and (2) it's not obvious how to deal with not-so-smart
servers. A possible way to deal with (2) would be to pack per
project rather than repo wide. I'm not sure how this would work if
you have a cross-project commit, so that might kill the idea, but on
the other hand it might be trivial (ignore the parts of the commit
that are not part of the requested project).
Steve
More information about the bazaar
mailing list