Author Topic: How to merge EAP files (from 2 team members)?  (Read 11531 times)

PatrickSullivan

  • EA Novice
  • *
  • Posts: 4
  • Karma: +0/-0
    • View Profile
How to merge EAP files (from 2 team members)?
« on: July 17, 2012, 08:12:48 am »
Hi Forum,

Simply, we have 2 users (me and a coworker).  We are changing our BMS.EAP files independently, and we need to merge our changes together now.  I can't even get to the point of getting a change diff (since files and/or filenames separate).   :(
 
More Info:
- We have a root base file
- We each have two separate files.  Neither of us created baselines.  The filenames might be different than the root base filename or each other.
 
What do we do to merge our work?  I tried many things but couldn't.  Help is not that helpful...  Any advice is much appreciated!!!
 
Thanks,
 
Patrick Sullivan
SW Engineer
Valence Technology//

qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +396/-301
  • I'm no guru at all
    • View Profile
Re: How to merge EAP files (from 2 team members)?
« Reply #1 on: July 17, 2012, 08:18:27 am »
Simply? No. It does not matter how many people you have. If you want to merge you need a concept. There's no silver bullet but here are a few ways (from recommended down to less recommended):

- work on a shared model with locking
- use VC to control single packages you want to share
- isolate changes in single package and ex-/import between modellers

EA does have some model merge. But I can't recommend that. It shows differences where none are at all.

Sorry for not giving a more pleasant answer.

q.

PatrickSullivan

  • EA Novice
  • *
  • Posts: 4
  • Karma: +0/-0
    • View Profile
Re: How to merge EAP files (from 2 team members)?
« Reply #2 on: July 17, 2012, 08:27:50 am »
Thanks qwerty.  So the most recommended (first item) means that we cannot work in parallel?  Or can I merge somehow after my teammate puts their changes in?

I cannot even find a way to cut and past diagram info (i.e. Select All then copy and paste from one file to another...).  So I cannot even figure out how to manually put my changes onto the master (if merge doesn't work...).

I don't understand the third item ("isolate changes in single package and ex-/import between modellers").  I thought a "package" was only a single drawing (probably not in this context though...)?  I tried importing and exporting XML/XMI files a little bit but it complains (since probably from different roots) - as I tried to import the different file (renaming it to be the same as mine) within the baseline dialog...

This tool is very complicated when it comes to merging it seems...  If XML/ XMI, it should have some utility... (I did see diffing with your own drawing causes false diff records which are actually the same...)...  AUGGGHHH!!!  >:(

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13387
  • Karma: +566/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: How to merge EAP files (from 2 team members)?
« Reply #3 on: July 17, 2012, 03:26:22 pm »
Patrick,

Although in theory it can be done, working in parallel (an then merging afterwards) is just insane.
So you you have a big problem. :-X
Since you both started from the same file you should still have something to go on. EA will be able to determine that some of the elements/packages are in fact the same thing (based on the GUID).
So for these things you should be able to use the diff utitility to merge the changes.
I suggest you choose one model as the "baseline" and export the other model to xmi.
Then use the diff utitlity to merge the other xmi file into the baseline.

Then you will have to figure out what to do with all the "duplicate" elements.
You probably created some classes that your coworker has also created. Merging these classes is a bit more difficult.
Best it so choose one as the baseline again (the one that has been used mosed) and then move everything for the copy to the baseline. That includes attributes and operations, usages on diagrams, connectors, usages as type of attributes, parameters, objects...

If you have a lot of duplicates you might want to consider writing a program/script to automate some of the work.

Then, after you have finished and everything is merged, I suggest you integrate a version control system into EA (that means exclusive checkouts) or setup "security" with regular baselines (and maybe auditing) to make sure you never ever get into this mess again.

Geert

cendito

  • EA Novice
  • *
  • Posts: 2
  • Karma: +0/-0
    • View Profile
Re: How to merge EAP files (from 2 team members)?
« Reply #4 on: July 17, 2012, 06:02:46 pm »
if you need to work on a shared model, you should consider putting your repository in a database instead of using the eap repository.

We have an approch in place where models start from a common baseline, being updated from projects, reviewed and merged to a new baseline.

Most of the diff and merge activities are supported by EA extensions.
This requires a clear concept how the model structure might look like and a lot of work on the extensions. This is nothing I would recomment or 2 team member to synchronize the model.


qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +396/-301
  • I'm no guru at all
    • View Profile
Re: How to merge EAP files (from 2 team members)?
« Reply #5 on: July 17, 2012, 08:50:31 pm »
What cendito suggest is the optimum for a team. However, if you are just two guys: if you're working at the same time at the same things, sit together. Else you have that problem Geert mentions. If you're working in time shift have a common repository and communicate your changes by any means: mail, memos, bookmarks in EA, checking modification date in EA.

Maybe you should sit together with your team mate and discuss how you can distribute work effectively.

q.

PatrickSullivan

  • EA Novice
  • *
  • Posts: 4
  • Karma: +0/-0
    • View Profile
Re: How to merge EAP files (from 2 team members)?
« Reply #6 on: July 18, 2012, 12:22:07 am »
Thanks guys for the posts but I must be missing something here.  Isn't it normal for two engineers to be working separately (i.e. one on one module and the other engineer on another assigned module?).

I don't think extreme programming (i.e. working together at the same desk on the same module together) is efficient for our case.

Is there a way to manually merge (i.e. cut and past drawing from one EA file to another?)?  I tried this, but it only copies the graphics and not the objects...  :(  I have separate pages (i.e. one State Diagram, one Object Diagram, and one Sequence Diagram).  I want to simply add them to my co-workers EAP file at this point, but cannot cut and past (when opening two sessions of EAP)...  This is unexpected... as it would be a nice way to manually merge...

The product brochure said "easy for concurrent engineering", but it doesn't seem to be the case...

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13387
  • Karma: +566/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: How to merge EAP files (from 2 team members)?
« Reply #7 on: July 18, 2012, 01:06:16 am »
Patrick,

I think you are missing the point a bit here.
- Concurrent modelling should be done on a central repository. You and your coworker were each working on your own repository.
- EA (and UML models in general) is not about drawings, it's about models.     Trying to copy/past a "drawing" from one UML model to another is like trying to copy a GUI form from one project to another by trying to copy a printscreen of the form without the code behind it.

Copying elements from one model to another is done using xmi export/import.

Geert

PatrickSullivan

  • EA Novice
  • *
  • Posts: 4
  • Karma: +0/-0
    • View Profile
Re: How to merge EAP files (from 2 team members)?
« Reply #8 on: July 18, 2012, 02:16:42 am »
Ah I get it Geert.  Thanks.

It doesn't seem trivial to add into our Version control through links within EAP, so I am adding the files into our Version Control system manually.

I was able to merge the changes, but I'm sure I did it the hard way...!!!!  I went into the compare utility and did a "Compare Model to File".  I got all the changes in a tree (and did a right click on the item I wanted to merge), but had to actually select each tree, branch and leaf item (i.e. I couldn't select the high level directory and merge recursively - no recursive selection that I could see...) to highlight and merge!  It took too long to select ever single step, associate, link, object etc... to merge up...  Is there a way to recursively or universally accept all changes without having to go into each item and all sub-items??

This whole merging isn't optimal, but since we are only a team of 2, and we will not need to both be working on the same drawing at each time (we can communicate name changes etc...) it would work as long as we could merge without having to select each detailed item (need recursive or universal selection for merging)...??

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13387
  • Karma: +566/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: How to merge EAP files (from 2 team members)?
« Reply #9 on: July 18, 2012, 02:45:29 am »
Patrick,

The easy way IS to use either a single central repository (.eap file on a network share should do) or to use a central version control system.

Merging is a PITA any way you try it.

Geert

Robert Sheridan

  • EA User
  • **
  • Posts: 105
  • Karma: +0/-0
    • View Profile
Re: How to merge EAP files (from 2 team members)?
« Reply #10 on: July 25, 2012, 12:47:46 am »
Another way I have used when there were on 2 of us on independant networks was to use replication.  I set up a master and each of us had a replica; however, you need to have a good daily process and fast network connection for synchronisation to work well.

The help has a good guide to using replication.