Book a Demo

Author Topic: Version control - lost relations  (Read 7961 times)

q2

  • EA Novice
  • *
  • Posts: 19
  • Karma: +0/-0
    • View Profile
Version control - lost relations
« on: July 06, 2008, 09:08:21 pm »
Let’s assume following package structure:

Functional model
   Actors
   Use cases
         Group 1
         Group 2

All above packages are version controlled separately (Package control->Configure option).
All team members are using EA 7.1 build 828, have private models (EAP files) and use SVN version control.

Example scenario:
1.      First team member checks out Actors and Group1 packages, creates new use case in Group1 package. This new use case is used by some actor from Actors package – so association relation is made between actor and new use case.
2.      Only Actors package is checked in by first member of the team.
3.      Second member of the team checks out Actors package, do something and checks in this package.
4.      First member of the team checks out Actors package and…..
Association relation between new use case and actor is lost!!!

Of course this is only example - problem is general.

How to resolve this problem???  

Packages have to be version controlled separately because team consists of 10 peoples working parallel. They are working in two separate places (hundred kilometers away) - so shared database approach will not work...I think.

I think about such procedure:
-      Always use “check in branch” to update all changed packages in SVN repository (not "check" in or "put latest")
-      Before “check out” always use “Get all latest”.
But I am not sure whether it fully resolve problem. Additionally people will forget about it.
 :-[

2stefant

  • EA Novice
  • *
  • Posts: 5
  • Karma: +0/-0
    • View Profile
Re: Version control - lost relations
« Reply #1 on: July 08, 2008, 06:41:08 am »
Hi, we had similar problems using Perforce for version control. After many serious model crashes (diagrams loose elements, lines missing anywhere in the model) we had to remove version control and rely only on the shared database. Using hourly backup on the db and sometimes doing database transfer to a local eap file for backup we have now managed to get a stable work environment.

We contacted Sparx several times and the late answer was that version control does not work well, because Perforce connections are not fully implemented yet...?

Regards Steve

D. Miller

  • EA Novice
  • *
  • Posts: 12
  • Karma: +0/-0
    • View Profile
Re: Version control - lost relations
« Reply #2 on: July 16, 2008, 07:58:33 pm »
I'm experiencing similar problems with TFS using the SCC option.

The problem is with the underlying database losing it referential itegritiy. This is due to EA not using the GUID as the primary key in the database.  In the database you can even watch items being deleted from the t_object table. This is why they disappear from diagrams.  If I do a 'Get Latest' on the affected package the objects (in this case Fragments) re-appear.

This gets far worse if you hold your model on SQL Server as you can do a 'Get Latest'  on a shared model.

Christian Herger

  • EA Novice
  • *
  • Posts: 19
  • Karma: +0/-0
    • View Profile
Re: Version control - lost relations
« Reply #3 on: July 16, 2008, 10:30:58 pm »
Hi q2

This problem has already been discussed here:
http://www.sparxsystems.com/cgi-bin/yabb/YaBB.cgi?num=1214575209
There I sort of described the problem related to the underlying db structure..

And I still think it is very critical and therfore I'm happy some other people might produce some pressure to this!! :)

Besides: This has really nothing at all to do with the vcs you are using...
Best regards

D. Miller

  • EA Novice
  • *
  • Posts: 12
  • Karma: +0/-0
    • View Profile
Re: Version control - lost relations
« Reply #4 on: July 17, 2008, 01:55:25 am »
"And I still think it is very critical and therfore I'm happy some other people might produce some pressure to this!!"

I couldn't agree more. I've just raised a "Registered Support Request" for this.

Kevin W

  • EA Novice
  • *
  • Posts: 5
  • Karma: +0/-0
    • View Profile
Re: Version control - lost relations
« Reply #5 on: August 21, 2008, 02:15:05 am »
We are having this exact same issue as well. It's a real pain because we must find and re-enter this lost relationships. This is impacting our productivity in our group. I have generated a "registered user bug report". However, the reply from Sparxsystems, says it can't be reproduced. However, it looks like a lot of us are having this issue.

I will raise this up our management chain to push Sparxsystems to fix this issue.

«Midnight»

  • EA Guru
  • *****
  • Posts: 5651
  • Karma: +0/-0
  • That nice Mister Grey
    • View Profile
Re: Version control - lost relations
« Reply #6 on: August 21, 2008, 03:16:09 am »
Have any of you send example files to Sparx support? Perhaps they have not yet encountered specific cases where the failure occurs.
No, you can't have it!

Christian Herger

  • EA Novice
  • *
  • Posts: 19
  • Karma: +0/-0
    • View Profile
Re: Version control - lost relations
« Reply #7 on: August 22, 2008, 11:47:18 pm »
Hi Mr. "Midnight"

There are no 'specific cases'. The described problem is an 'any case' case. You can easily try it yourself with two controlled packages which have relations in between...

regards
Christian
Best regards

Frank Horn

  • EA User
  • **
  • Posts: 535
  • Karma: +1/-0
    • View Profile
Re: Version control - lost relations
« Reply #8 on: August 23, 2008, 12:11:30 am »
Quote
There are no 'specific cases'. The described problem is an 'any case' case. You can easily try it yourself with two controlled packages which have relations in between...

Christian,

it's not as easy as that. I once had a minimal example (which I sent to Sparx, too) but as of version 7.1 it did not "work" anymore, i.e. the relations were not lost. So maybe at Sparx they think the problem is fixed, and a new example would be good.

Frank

Christian Herger

  • EA Novice
  • *
  • Posts: 19
  • Karma: +0/-0
    • View Profile
Re: Version control - lost relations
« Reply #9 on: August 26, 2008, 10:09:12 pm »
Hi Frank

I know what you mean. They indeed have 'fixed' something in 7.1: EA now RESTORES relations if you import EVERYTHING (stress on EVERYTHING!) into a project.

But imagine the following situation:
  • There is a framework 'package1'. Used for many projects.
  • There is a certain project named 'package2'.
  • Now, 'package2' uses 'package1' and all relations are neatly set up.
  • The framework team enhances 'package1'. They don't care about projects using this framework and just get 'package1' to work on.
  • I have to apply some extensions on project 'package2'. The extensions are NOT framwork related and therefore I only get 'package2'!(I want to focus on my work related scope!)
  • The team and I do our work and check in our changes.
Result: The project 'package2' has lost all its relations to the framework 'package1'! :o

This is a pretty simple example and you know in 'real life' package dependencies are much more complex especially when it comes to use cases and requirements!
So, with EA to ensure consistency, I must get the whole world even if I only want to cut one tree. If I don't, the forest in which I cut the tree might lose contact to earth...

This is really simple to reproduce...

Christian
Best regards

Frank Horn

  • EA User
  • **
  • Posts: 535
  • Karma: +1/-0
    • View Profile
Re: Version control - lost relations
« Reply #10 on: August 26, 2008, 11:50:01 pm »
Allright Christian,

I see what you mean. package2.xml contains "stubs" for the related objects from package1, but when you have package2 in a project without package1 and check it in, EA does not export the stubs to the new package2.xml.

At least at Sparx they know about this Simon said someone was "looking into it" (http://www.sparxsystems.com/cgi-bin/yabb/YaBB.cgi?num=1214575209/12#12)

In the meantime we are working with controlled "root packages", i.e we have a controlled package hierarchy like

rootpackage
---package1
---package2

and to edit package2 we create a private model, get rootpackage, check out and edit package2 and check in again. The problem does not occur then, but of course there's no security against someone unwittingly importing only package2 and messing things up. Our system only works when everybody remembers to use GetPackage on root packages only (except for admins who e.g. check out rootpackage to add package3).