[cvsnt] Project structure in repository as it relates to branching

Gerhard Fiedler lists at connectionbrazil.com
Tue Aug 15 00:25:31 BST 2006


Nick Duane wrote:

> I have app1 and app2 both with virtual module lib1.  We're releasing both
> of these application into QA for our 3.8 release so I want to tag them
> both with tag t-rel-3-8.  Does this work?  If so, what is the outcome? 

As far as the apps go (assuming they don't share code), there is not really
a problem with that. t-rel-3-8 then contains both apps. 

In your structure, it also contains the shared lib. It would have been
tagged twice with the same tag, which shouldn't be a problem.

> At some later point in time bugs are reported in both applications so I
> branch both of them at tag t-rel-3-8 and call the branch b-rel-3-8. 
> Does this work? What is the outcome?  

Exactly the same as above. There is only one branch that contains both apps
and the lib. 

> So the developer working on app1 thinks he/she has their own copy of lib1
> and the developer working on app2 thinks he/she has their own copy of
> lib1.  

They shouldn't think that. Since their copies of the lib are on the same
branch, they work on the same copy of the lib and should be aware of that.
If they don't want to or shouldn't work on the same branch, then you should
use different tags and branches for the different apps, ie. t-rel-3-8-app1
etc.

> They each make separate fixes to lib1 contained within their app. They
> commit their changes and tag the release.  What is the result? Does the
> b-rel-3-8 branch of lib1 contain both fixes? 

Since both app directories contain the same branch copy of the lib, both
groups work on the same lib copy. They may work concurrently on the same
files, and a commit may require a previous merge. The result of this is
that at the end, when the second group to finish commits their changes, the
lib contains the changes of both groups. 

Gerhard


More information about the cvsnt mailing list