Book a Demo

Author Topic: Get All Latest - SVN repository  (Read 5567 times)

Trivadis_tst

  • EA Novice
  • *
  • Posts: 5
  • Karma: +0/-0
    • View Profile
Get All Latest - SVN repository
« on: January 06, 2011, 08:23:32 pm »
Hi,

we set up EA with Version Control in a SVN Repository.

With a "Get All Latest" on the root node, the connectors between e.g. an Actor and a Sequence sometimes get lost or aren´t visible.

does anyone know ho to solve this issue?

br

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Get All Latest - SVN repository
« Reply #1 on: January 06, 2011, 08:47:17 pm »
Try a getLatest a second time.

Geert

Trivadis_tst

  • EA Novice
  • *
  • Posts: 5
  • Karma: +0/-0
    • View Profile
Re: Get All Latest - SVN repository
« Reply #2 on: January 06, 2011, 08:50:01 pm »
Hi Geert,

we tried "get(all)latest" in all possible variations ;-) Sometimes it works, sometimes not.

Any other hint?

thx

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Get All Latest - SVN repository
« Reply #3 on: January 06, 2011, 08:59:03 pm »
Trivadis,

The problem you are experiencing is a common issue with version control and the order in which the files are imported.
lets say you have a controlled package A with a class CA and a controlled package B with a class CB
If you now create a dependency from CA to CB this depencency will be stored in package A
Create a dependency from CB to CA and the dependency will be stored in package B

Now if you checking package A and B, and perform a getlatest on another model EA will import both packages by doing an xmi import.
If EA imports package A first then it will try to create the dependency to CB, but because it hasn't imported package B yet, the CB doesn't exist and it can't create the dependency.
If then package B is imported it will try to create the dependency to CA. That will work because CA already exists.
So after a getlatest you have the dependency from CA to CB, but you have lost the dependency from CB to CA.
Doing another import of package should then solve the issue since now CB already exists.

Geert

Trivadis_tst

  • EA Novice
  • *
  • Posts: 5
  • Karma: +0/-0
    • View Profile
Re: Get All Latest - SVN repository
« Reply #4 on: January 06, 2011, 10:18:32 pm »
Hi Geert,

File(Package) A containig Class A and Class B.
In File (Packag) B, C, D etc. We have a Sequence Diagram with "simple links" of Class A and Class B with Connector Calls between them. These get lost, and even a "get latest" on package B,C,D.. does not work.

br

Trivadis_tst

  • EA Novice
  • *
  • Posts: 5
  • Karma: +0/-0
    • View Profile
Re: Get All Latest - SVN repository
« Reply #5 on: January 06, 2011, 11:40:58 pm »
...it is a random machine. It works 1 out of est. 10 times...

philchudley

  • EA User
  • **
  • Posts: 750
  • Karma: +22/-0
  • EA Consultant / Trainer - Sparx Europe
    • View Profile
Re: Get All Latest - SVN repository
« Reply #6 on: January 08, 2011, 02:56:32 am »
Hi Trivadis

The solution is use Object instantations for the Lifelines and never re-use Classes as links when creating Lifelines by dragging and dropping classes from the Project Browser to the sequence digram.

This is confirmed by the following extract from the EA User Guide version 8.0

You might create Sequence diagrams that use elements from other packages as the Lifelines within the diagram. In such cases, the diagrams could be corrupted when the element packages are checked in and out under version control. This is because during checkout the elements are first deleted from the model and then re-imported, and although they are reinstated in the diagrams, any Messages connecting them are not.

So, if the diagram and its elements reside in different packages, a round-trip of the element package through version control might damage the Sequence diagram.

The solution is to drag-and-drop each Class onto the Sequence diagram as an object - when you drop the Class onto the Sequence diagram, in the Paste Element dialog select the as Instance of Element (Object) option. This creates a new object in the diagram's parent package, based on the selected Class element. You then create the Messages between the objects.

Therefore, to ensure that a Sequence diagram is not damaged by round-trips of other packages through version control, remember that:
 
· The Lifelines must be objects (even though Enterprise Architect  allows you to drop elements as Lifelines onto a Sequence diagram, it is not a strictly UML compliant construct)
· The Lifelines must be in the same package as the diagram.


Hope this helps solves your issues, you can convert your current diagrams by right-clicking the lifeline and selecting Advanced | Convert to Instance from the menu

Cheers

Phil
Models are great!
Correct models are even greater!

Trivadis_tst

  • EA Novice
  • *
  • Posts: 5
  • Karma: +0/-0
    • View Profile
Re: Get All Latest - SVN repository
« Reply #7 on: January 11, 2011, 06:15:43 pm »
Hi Phil,

this works. But, we loose all connectors in the class when we convert to Instance. So we have to go through the diagrams and re-copy the classes as instances including the switch "copy all connectors".

After this, the "get all latest" works.

thanks for your help.
br