Book a Demo

Author Topic: Howto work with Version Control branches  (Read 9155 times)

Dave.B

  • EA User
  • **
  • Posts: 94
  • Karma: +0/-0
    • View Profile
Re: Howto work with Version Control branches
« Reply #15 on: September 16, 2009, 06:24:30 am »
Paolo,
sorry about that! It's always the same when something complex seems clear in ones mind that it can be dam hard to write down clearly!

When I said "a model of models" what I meant was that an EA project can actually consist of more than one model and each model can consist of one or more packages. The important distinction between a model and a package is that the model specifies the path to the root of the model repository and which version control system is to be used. Hence the packages that make up a model all have to exist under this root path and use the same version control system.

And get this, EA allows you to make linkage between elements in separate models! So there is no loss of capability from splitting a single model into many models. (Note that links are stored with the source element in the XMI files and reference the target elements GUID. This means that only the source element package needs to be checked out to add a link, so plan carefully, but typically this allows requirements traces to be added without the need to check out the requirements packages. Neat! :) )

So I hope that if you now re-read my previous post you will understand that by dividing a single monolithic model into a number of separate models that each one can be now be placed in a separate version control "place". In ClearCase terms this could be a unique VOB, or at least a separate model folder in the same VOB, for each model in the model (sorry, EA project). This means that each one can be separate base lined in your version control system.

So you could have an EA project that consists of a Requirements model, an Analysis model, and a Design/implementation model. And each one can be separately controlled, base lined, and issued to each team member or sub-teams (on larger projects).

The only caveat is that each team member or sub-teams must have their own working set and hence database. And then the problem is keeping everyone of these working sets in synch with the version control repositories. But since we're doing this in order to have control over who does what and when, then approved changes to individual models will be released to the other team members or sub-teams - won't they! And then these receiving (sub-) teams can decide when best to take the update and assess the impact of the change on their model and work - won't they!

Hope this helps, despite the excessive use of the word "model"!

Best Regards
Dave B.

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: How to work with Version Control branches
« Reply #16 on: September 16, 2009, 10:40:41 am »
Quote
Paolo,
sorry about that! It's always the same when something complex seems clear in ones mind that it can be dam hard to write down clearly!
[size=18]...[/size]
Dave B.
No problem Dave!  Been there, done that!  The only problem is you're trying to sell the T-shirt!  So, clarity is in the eye of the beholder...

We used a similar principle at Ripple.  But you have to be careful to make sure that BOTH ends of the link are exported together; otherwise the link will "evaporate".  At one stage we even wrote an add-in to check which other packages needed to be exported to ensure this.  We also found that we had to import both packages twice (there are postings about it on the forum - look for postings under my name about 2-3 years ago).  That was the Sparx recommendation at the time and I don't think that's changed.

HTH,
Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!