Book a Demo

Author Topic: VC, merging and branching on EA  (Read 5925 times)

jguerra

  • EA User
  • **
  • Posts: 39
  • Karma: +0/-0
    • View Profile
VC, merging and branching on EA
« on: July 03, 2008, 02:40:50 am »
Hi,

I was just researching the merging, branching capabilities on EA for version controlled packages and I have to say that I start to be concerned about it.  This is a feature with a strong appeal to work in organizations, and we might have to include something like that for our internal process.

So, reading the documentation I come across this:

Quote
On the other hand, if the repository now contains a file that has changed since you last updated your local copy, checking in your package overwrites whatever those changes might be. Enterprise Architect displays a message warning you of the pending data loss and giving you the opportunity to abort the check in. At this point, you must decide whether to discard your own changes, using the Undo Check Out command, or continue with your check in and overwrite the changes that have been committed to the repository since you last updated your local copy from the repository.
http://www.sparxsystems.com/EAUserGuide/offline_version_control.htm

Apparently that has serious consequences to work offline with VC packages. From the text above, if you work offline in a particular package and someone else change the package on the repository, it looks like you don’t have any choice to merge the changes except overwrite or discard the changes.
Has anyone around an idea in how to overcome a scenario like that?. Is there any way to merge branches on VC packages?.
If we branch one VC package, can we baseline the branch and the tip in order to use the "Compare Utility" for Baselines to put everything back again into the tip?

Thanks in advance and I'd apreciate some feeback on this.

Cheers,
« Last Edit: July 07, 2008, 08:34:28 pm by jguerra »

Eve

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 8110
  • Karma: +119/-20
    • View Profile
Re: VC, merging and branching on EA
« Reply #1 on: July 03, 2008, 09:21:25 am »
There is an approach you can take...

Once the first user actually checks their changes back in, the second user can create a baseline of their version of the package.  Then they can check out the package.  This will overwrite their changes, they can then do a baseline compare to selectively apply changes from the baseline.

If that's not clear enough let me know and I'll try again.

jguerra

  • EA User
  • **
  • Posts: 39
  • Karma: +0/-0
    • View Profile
Re: VC, merging and branching on EA
« Reply #2 on: July 04, 2008, 12:22:14 am »
Hi Simon,

Yeah, it looks promising that way but I haven’t tested it out, so I can’t see what you mean, but I got the point. Thanks for the feedback.

However, what's bothers me are the cross dependencies between packages (horizontally not vertically). Take the case that accidently someone deletes (Ctrl + Del) an element in the package, and the user put the changes back in into the repository, now the whole model could be corrupt at this stage. If you check out the project, one reference could say that the element is there and other ones could say that the element is not there. Is that right?.

I think that one of the big points of the Baselines is that they cover the whole thing and keep the entire model consistent. So, I have a sort of feeling that taking the approach of archiving Baselines on XMI format could be another option.

Cheers

Eve

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 8110
  • Karma: +119/-20
    • View Profile
Re: VC, merging and branching on EA
« Reply #3 on: July 04, 2008, 08:40:33 am »
After deleting an element and checking in the package there may be references to that element in other packages.  Many of those references will be discarded when importing the other packages.  Others will be stored just in case the element still needs to be imported.  Either way, your model data will not be corrupted.

jguerra

  • EA User
  • **
  • Posts: 39
  • Karma: +0/-0
    • View Profile
Re: VC, merging and branching on EA
« Reply #4 on: July 04, 2008, 09:10:24 pm »
Hi Simon,

Well, I think there is some information missing  :( and apparently the diagrams can’t be restored… I created a coupled packages, put them under “Package Control” with cross dependencies between packages (not nested), I saved them as XMI files and I put them back in again and … bad news, there are cases in which the information is not preserved. So, I presume it will happen the same thing under VC. I am using EA 7.1 b828. I mean, something should be highlighted at least !!. am i wrong?

Cheers
« Last Edit: July 04, 2008, 09:21:29 pm by jguerra »

Eve

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 8110
  • Karma: +119/-20
    • View Profile
Re: VC, merging and branching on EA
« Reply #5 on: July 07, 2008, 08:26:20 am »
I'm afraid I'm not sure what you're doing or seeing, so you're probably best off directly contacting support.  Make sure you provide as much information about your situation as possible.

jguerra

  • EA User
  • **
  • Posts: 39
  • Karma: +0/-0
    • View Profile
Re: VC, merging and branching on EA
« Reply #6 on: July 07, 2008, 08:16:27 pm »
Hi Simon,

Yeah, I am going to post the project and the steps to reproduce the  result I get. It's pretty much simple; it contains two packages, two diagrams, 4 components and one interface. Maybe is me !!, but basically this is it. Both packages with the option “Package Control” activated. Removing information from one package, export the modified package to XMI and restore the model from the XMI files. I tried with "Bactch Export" and "Batch Import" ticked and not ticked and it didn't work either.
But there is one thing that it really strikes me is that it doesn't warn me about missing information when import the packages from XMI files. The model “knows” that there is missing information because one of the packages is the original one, and it should know all about the dependencies between elements. Anyway, I am going post the project and thanks Simon, and we'll see!

Cheers

jguerra

  • EA User
  • **
  • Posts: 39
  • Karma: +0/-0
    • View Profile
Re: VC, merging and branching on EA
« Reply #7 on: July 07, 2008, 08:30:05 pm »
... btw, I was looking for a way to post an EA project, and I have't found it. Would you mind to indicate what is the best way to do it!

Cheers
« Last Edit: July 07, 2008, 08:43:28 pm by jguerra »

Eve

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 8110
  • Karma: +119/-20
    • View Profile
Re: VC, merging and branching on EA
« Reply #8 on: July 08, 2008, 08:40:42 am »
Don't post the project here.  Send it to sparx support.  http://www.sparxsystems.com/support/index.html

jguerra

  • EA User
  • **
  • Posts: 39
  • Karma: +0/-0
    • View Profile
Re: VC, merging and branching on EA
« Reply #9 on: July 10, 2008, 09:32:02 pm »
Hi Simon,

I submitted my EA project to Sparxs with the instructions to reproduce my scenario and well, we'll see how it goes anyway.

Cheers and thanks for your replies

(typo removed)
« Last Edit: July 12, 2008, 01:21:46 am by jguerra »

jguerra

  • EA User
  • **
  • Posts: 39
  • Karma: +0/-0
    • View Profile
Re: VC, merging and branching on EA
« Reply #10 on: July 15, 2008, 07:35:44 pm »
Hi

Just to indicate that I was exporting on XMI version 2.1 and it should be XMI/UML 1.3 instead. Log must be ticked as well on the "Package Control" settings.
Now, when I import the package that it contains references to non existing references in the other one, it logs an error like this
Quote
Error: Unknown Transition Source or Target Resolving DiagramIDs

Well, I have to say it's not the best report system I've come across, but anyway !!

Thanks for the help!

Christian Herger

  • EA Novice
  • *
  • Posts: 19
  • Karma: +0/-0
    • View Profile
Re: VC, merging and branching on EA
« Reply #11 on: July 16, 2008, 11:23:14 pm »
jquerra

I more and more often stumble over posts describing my problem in another way...
http://www.sparxsystems.com/cgi-bin/yabb/YaBB.cgi?num=1214575209

What I can recommend you for now is to upgrade to EA7.1.831.
With this build the references are restored in diagrams if you import them one after another (and all of them, of course!). However, this works only for the first time in an empty project. Means, you can not delete a package (I'd rather remove it, but there is no such function) and reimport it: like this, missing references are not restored!

Regards
Christian
Best regards