Where I work at, we have about 2 dozen or more projects, using SVN as version control. My boss is pretty strict about the repositories, but misguided I think. For example, we always have one "Current" branch f开发者_运维技巧or development, which gets merged into Trunk before a release. For all other purposes, "Current" is the trunk and we don't ever make more branches. Likewise, he's picky about file contents, most pointedly, all the References in the project files must adhere to a "flat" directory structure between projects (ie, all project folders in one directory.)
Now, I figure that one way I can make my life easier would be to use Bazaar locally so I can work on features in their own branches, make frequent commits locally (for change tracking), possibly reorganize my projects, and generally make my life a little easier.
Except I can't quite get the repository structure for Bazaar figured out! The standard would seem to be something like
Project-Repo (Shared Repo)
/Project-Trunk (Bound to SVN)
/Project-Feature1 (Branch of Trunk)
/Project-Feature2 (Branch of Trunk)
Some projects have up to a half-dozen or more references to other projects. And most features will require changes to at least 2 projects at any given time. I have no idea how to handle that. If I break the feature branches out into other folders, I lose the shared repository benefits. And if I leave them in place, then I'll have to reconfigure all the references each time I need to branch projects for a new feature.
The best I can think to do is just deal with the lack of shared repos and do something like this:
Branches
/Feature1
/ProjectA-Branch
/ProjectB-Branch
/Feature2
/ProjectB-Branch
/ProjectC-Branch
With the trunks all being stored as individual repos elsewhere just for the purpose of merging and final commits back up to SVN.
Is that the best layout I'll be able to get with Bazaar or are there techniques that I'm unaware of? Repository layout is a very challenging exercise considering how common it should be.
I think, given the constraints about them all having flat local names, this is probably the best setup.
You could make some of those directories actually not be whole branches, but just checkouts of the common branch, if you don't intend to modify them.
精彩评论