Deeper understandign of merge tool functionality

General discussions about teamwork

Moderator: Moderators

Deeper understandign of merge tool functionality

Postby ivan.zaytsev@atrias.be » Tue Jun 17, 2014 7:48 am

After acquiring the merge pluging, we decided to test it on a separate server package. In order to do so we took our existing repository offline and dropped all versioning history. Then, the local repository was uploaded as a new server project.

On the new test_project, we created a few branches and performed a merge with the test_master branch. Contrary to our expectations, the merge results also affected the original production_respository. Could you please elaborate based on what information the merge plugin operates and if /how it is possible to perform tests on a copy of production_models?

We have a large and deeply nested model and would like to first gain a good understanding of the plugin's functionality before including it in our day to day workflows.

Set-up: MagicDraw UML 17.0.2 SP3 (Standard and architect licenses + merge plugin) with Teamwork Server (default version management)

Thank you,

Ivan
ivan.zaytsev@atrias.be
Forum Newbie
Forum Newbie
 
Posts: 4
Posts Rating:0
Joined: Tue Apr 01, 2014 1:34 am
Location: Brussels
Full name: Ivan Z

Re: Deeper understandign of merge tool functionality

Postby ieva.n » Wed Jun 18, 2014 5:50 am

Hello Ivan,

The Merge plugin by itself does not affect any projects which are not being merged or being used in merged projects as modules. However, as you are mentioning that you saved the existing project with multiple modules locally and added it to the same server again, this might be the cause of the problem because of several reasons.

The first possible reason is that you did not save the modules locally while saving the project itself and the modules on server was used in new project. In this case the merge on new project (which is referencing original modules) would affect the original modules and thus the original project structure.
The second possible reason may be related with the specifics of MagicDraw default behavior when adding projects to teamwork server. At the moment, when adding the local project with local modules to teamwork server, MagicDraw default setting is to search for matching modules already located on server and change usages so the modules used in project would be replaced with matching modules on server. In this case again the original modules are being used and original project is affected.

To solve the first issue, please make sure that you save the project WITH modules when saving project locally. In this case, when choosing File > Save As, choose the option "Save the local copy of the project and remove locking and version information. It will not be possible to commit changes to the server." While saving, the warning appears about locked/non-committed elements. After choosing the save location, the Question appears asking "Do you want to save all used modules?" - and the answer for this question must be "Yes".

The second issue also might be solved by manually changing the settings for modules when adding project to server again. To do this, when trying to add project to teamwork server in the dialog "Add Project to Teamwork Server Settings" (this dialog appears at once after choosing the command "Collaborate > Add Project To Server") switch to tab "Local Modules" and for each local module and submodule in column "Action" change the value from "Use Server Module" to "Add to Server", also make sure to change value "Name on Server" (for example, by adding some number -1). This would add the locally saved modules as new projects and the new project will no longer have any relation with original project and original modules. NOTE: please do not add the MagicDraw standard modules and profiles to server. They by default have value "Leave Local Module" and it should not be changed.

There is a possibility to simply try merge in such way, that it would not affect main trunk or other branches. This would require working only with branch and its subbranch, also making sure that all modules are branched and not one version used in Merge is coming from trunk or other branches. If this case interests you, please write and we will provide information what structure should be created and what actions should be avoided in order to prevent any effect to main project and other branches.

Also, you may want to try the new MagicDraw 18.0 LTR version. It provides the possibility to merge the read-write modules content while merging the original project as well as other convenient features, like less conflicting changes, easier text modifications review and possibility to ignore order changes thus allowing easier review and solving. The MagicDraw 17.0.2 sp4 only allows to change the modules usage while performing Merge, but does not allow to choose separate changes from modules.

Also the new server would provide advantage that the original projects and modules would not be affected in any way even when trying various combinations.
ieva.n
No Magic
No Magic
 
Posts: 356
Posts Rating:28
Joined: Thu Aug 02, 2012 5:02 am
Full name: Ieva


Return to Merging, branching, modules, team collaboration

Who is online

Users browsing this forum: No registered users and 0 guests