Your method is a fine one. The thing is, if the parent branch is empty, then you don't need to create it. You just need to track its sprout point from its parent so that its children sprout from the same version. This is mathematically equivalent to creating a placeholder that is identical to the sprout point, which is what you seem to want.
Another way to look at it is to compress a bunch of adjacent identical versions to the earliest point, and sprout any branches from there as needed. >From the user's perspective, the commands used to do the everyday work are identical: Checkout or update a workspace for any given branch, commit new work as needed, perform merges by specifying one or two versions (or a version and a branch) not in the workspace. There might be some confusion when reviewing the version history and trying to map it to the logical branching required by the project, but having the logical branch structure documented and handy during the reviews exposes the optimization in a way that should be clear to the casual observer. --- Forwarded mail from [EMAIL PROTECTED] No, no, no, I'm NOT trying to "make" CVS work like ClearCase. I perfectly understand that it DOES not and CAN not. It's just when I branch I want to see the "physical" branch, regardless where it's coming from. I just have a development philosophy I've used in the past that has worked for me. I treat the trunk as THE release branch, meaning only code that has been tested and verified is submitted to the trunk. So I create a development branch off the trunk and make this an "integration" branch. Individuals' branches=20 are off this development branch, where they do their own work, i.e., their=20 sandboxes are checked out using their individual development branch, and code and "unit test" off their development branch. When all are ready, then they merge their code onto the the "integration" branch. Then the "integration" branch is tested, etc. Once proven the "integration" branch is merged onto the trunk, which is the release branch. IOW, all tested code is funneled back to the trunk, which is the release branch. --- End of forwarded message from [EMAIL PROTECTED] _______________________________________________ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs