Merging with teamwork server

General discussions about teamwork

Moderator: Moderators

Merging with teamwork server

Postby matthew_connors@bmc.com » Wed Apr 27, 2011 6:59 pm

MagicDraw 17.0 SP1

I am working through the example merge with teamwork server case in the User Manual, using the Inventory Control System project. The example case worked fine, as described in the manual. I made sure the trunk was committed, then went back to the branch, made more additional changes (added another class, added an attribute to an existing class, added a relationship), committed that, then went back to the trunk and selected the latest branch version (2) to merge into the trunk. What happened was that the all the first round of changes showed up as conflicts. The source and target data looked identical in the conflict details pane and in the specifications window. I then marked the conflicts as resolved, merged, committed the trunk. Went back to the branch, created more changes in the branch, committed that version. Went back to the trunk, selected the latest branch version (3) to merge, and once again saw all the changes from versions 1 and 2 as conflicts. What am I doing wrong?
matthew_connors@bmc.com
Forum Newbie
Forum Newbie
 
Posts: 12
Posts Rating:0
Joined: Mon Mar 15, 2010 1:08 pm

Re: Merging with teamwork server

Postby kazvai » Thu Apr 28, 2011 5:01 am

Hello Matthew,

In the situation you described the MagicDraw UML performs 3-way merge. It means that besides project on the trunk and the project on a branch there is project called "ancestor" that participates in the merge. In your case the ancestor project is the branch point version of the project on the trunk. The branched project and project on a trunk are called contributors. Merge tool uses the ancestor project to calculate which changes conflict with each other, f.e. the same classes that are on a branch and on a trunk project but not in ancestor project. Note that the MagicDraw UML the same element addition or deletion regards as a conflict.
In subsequent merges from branched project, each accepted change results in a difference between trunk project and ancestor project. This difference is identical to the difference between branched project and ancestor project. The MagicDraw UML doesn't remember which differences are the result of previous merges, therefore those identical differences in both contributors are detected as conflict each time the merge tool is used.
For a workaround I suggest to choose an ancestor project manually. The ancestor project should be some more recent version of the trunk project than the branch point project version. To manually specify an ancestor project use Tools->Project Merge menu item.

We apologize for the inconvenience. If you have any other questions or concerns - feel free to contact us.

Best regards,

Kazimieras Vaina
kazvai
Customer Support
Customer Support
 
Posts: 4
Posts Rating:1
Joined: Wed Jul 07, 2010 5:52 am

Re: Merging with teamwork server

Postby matthew_connors@bmc.com » Thu Apr 28, 2011 6:10 pm

Thank you Kazimieras, that makes perfect sense now that you've explained it. I've tried it using different ancestors in Project Merge and it works the way I would expect it to.

Thanks,
Matt
matthew_connors@bmc.com
Forum Newbie
Forum Newbie
 
Posts: 12
Posts Rating:0
Joined: Mon Mar 15, 2010 1:08 pm


Return to Merging, branching, modules, team collaboration

Who is online

Users browsing this forum: No registered users and 0 guests