Repository layout??

Frits Jalvingh jal at etc.to
Thu Jan 3 17:50:56 GMT 2008


Hello,

I am evaluating Bazaar as a replacement for Subversion, but I need some help 
on determining a workable repository layout. Hopefully someone here can 
provide some answers ;-)

I have a large Java project which consists of a few main projects and about 65 
subprojects. A checked out (local) workspace consists of about 419MB, 28000 
files (this is source only, it does not contain Subversion data or 
compiled .class files).

All of the projects are "next to eachother" in the working directory after a 
checkout (it is an Eclipse-managed workspace where every "root" directory in 
the workspace is a separate project). Projects "depend" on the other projects 
forming the complete project dependency tree of the whole application 
(the "main" project).

In Subversion this has a native structure which looks like:
trunk
|-mainprojectA
|-mainprojectB
|-subproject1
|-subproject2
|-..etc....

Branches of the project (representing releases) are present in the same 
repository in the format:
branches
|-A-R1.0-|
|        |-mainprojectA
|        |-subproject1
|        |-subproject2
|
|-A-R2.0-|
|        |-mainprojectA
|        |-subproject1
|        |-subproject2

etc.

To get the entire project, including all subprojects at their /correct/ 
version in a local workspace one just checks out the needed subprojects under 
the trunk or under a branch, and you have a complete workspace. Because all 
projects are within the same repository I ensure that the versions of the 
main project and the subprojects are properly related: if I update two 
projects on a branch and commit the result is a /single/ repository version 
representing the entire project tree on that branch.
In other words: although all my project /can/ be developed separately on the 
trunk the branched versions are kept in relation with eachother.

For me the separation between projects within the repository is crucial; many 
of the projects are reused in other "main" projects also which also live in 
the same repository.

What would be a reasonable way to store this in a Bazaar repository? I tried 
the obvious (putting all of the projects in a single repository) but that 
meant I had to put *all* projects present in the SVN repos into a single 
Bazaar repository. This has the effect that all of the subprojects in the 
repository (even those I do not need for the given main project I'm working 
with) are present (making the result huge), and in addition I can only commit 
on the whole repository, not on individual projects (which takes forever by 
the way).

I would like to be able to work on a "subset" of the repository.

I have done some research and it looks like I need something called "nested 
trees", but I cannot find much information on it. Any idea's anyone?

Thanks for your time!

Frits



More information about the bazaar mailing list