nested and partial tree

John Arbash Meinel john at arbash-meinel.com
Thu Aug 24 19:28:59 BST 2006


William Dode wrote:
> Hi,
> 
> I would like your advice for this situation.
> 
> I've somes projects that are libraries in differents versions, theses 
> project contains the code of the library but also documentation, 
> tests...
> I've somes projects that use theses libraries but need only the code of 
> the libraries.
> 
> Example of a library :

It is funny to see '\', '~' and symlinks discussed at the same time.
Since only Windows uses '\' as a directory separator.

> 
> ~\mylib\lib-1.0\
>                 doc\
>                 test\
>                 libcode\thecode is here
> 
> I use two solutions for the project :
> 
> ~\myproject\proj\
>                  code\ code of the project
>                  lib\ = symlink of ~\mylib\lib-1.0\lib
> 
> or
> 
> ~\myproject\proj\
>                  code\
>                  ext\ = checkout of ~\mylib\lib-1.0\
>                  lib\ = symlink of ..\ext\libcode
> 
> Of course the second solution is more clean, i need to do an update 
> manualy when i want to upgrade to the last revision of mylib, and i can 
> also make somes local changes...
> 
> What i did with cvs was
> 
> ~\myproject\proj\
>                  code\
>                  lib\ = checkout of ~\mylib\lib-1.0\libcode
> 
> I wanted also to remark that we speak everytime about bazaar to work 
> with others people but it's also very usefull for standalone projects, 
> for history and when we take care of differents versions...

So as you mentioned you are asking for both a nested and a partial tree.
In that you want to checkout part of another tree (partial) and put that
underneath another tree (nested).

Partial checkouts are something that need a lot of discussion, to decide
exactly how/if we want to support it. The issue is that you end up
committing trees that have never been fully tested. And it means that
the tree *you* have checked out, may not match the tree someone else
checks out from the same revision.

Nested trees we already have limited support for. And Aaron is working
hard to make the support much more seamless. So I would recommend:

myproject/proj
	code/ # your stuff
	ext/ #Other stuff
	    libfoo-1.0/.bzr/
	        lib/
	        data/
	libs/
	    libfoo@ => ../ext/libfoo-1.0/lib

Another alternative, especially when we get better nested tree support,
is that the 'lib' project itself could be several independent branches.
A 'lib-tests', 'lib-docs', and 'lib-source'. I don't recommend it 100%
at this point, but if you decide to do it the 'config-manager' project
might work very well for you. It lets you specify a list of what needs
to be checked out to get a working project. It even lets you do
checkouts from different source formats. So it will let you do a SVN
checkout of one library, as a sub directory of your bzr project, etc.

John
=:->


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 254 bytes
Desc: OpenPGP digital signature
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20060824/d402d658/attachment.pgp 


More information about the bazaar mailing list