Model Merging

Hello everybody
We (me and my team) recently started using Capella and we are facing a few issues.
I have 2 models, a model M1 and a model M2. Model M2 is an addendum to Model M1.
The PCs on which M1 and M2 reside cannot communicate with each other due to restrictions so sharing a model via repository or even using the Team 4 Plugin is not an option.
Capella manages the model in a single xmi file.
I will work on both M1 and M2 causing diversions.
The issue is not with the versioning system, but in the merging of M1 in M2 (i.e. the two xmi files)

  • Regularly, M1 will need to be merged into M2, causing merging issues, which are not easily solved with the current merging tool:
    o If not cherry picking both versions, either all M2 additions are deleted during merge, or all M1 deletions will not be merged
    o There is no easy way to verify if the merge is successful in the sense that the M1 base of the M2 model is equal to the M2 model
    o Cherry-picking the xmi itself is difficult because the structure of the file is complex, with many ids and references
    How do I split the model over different projects and/or files and still be able to reference the entities between these files or projects?
    If this is not the proper channel to ask this question could you please direct me to the correct channel?
    Many thanks
    Best regards

Hi
When you talk about the diffmerge, are you talking about the Capella native diff merge tool? See the picture hereunder. The embedded help is pretty exhaustive.
Do your models have a common base? Meaning, is one a copy of the other ones or have they been created separately? If they have been created separately, there is no way you will be able to easily diff/merge them with Capella version prior to 1.2. Because at that time Capella diff/merge was only based on the technical IDs of elements (the most secure way to perform diff/merge). Starting with Capella 1.2, diff policies are much richer and are customizable.
In any case, under no circumstances should you diff and merge the XMI files in text mode.
I don’t know how many users will contribute to the models on each side, but maintaining models synchronized or aligned might end up being a bit challenging… Diff merge operations are always touchy, no matter how good the tool is.

Thanks Stephane.

Hi,
To complete Stephane’s answer (which I fully agree with), if your restrictions allow it, you could consider that M2 reference M1 (without any vibility from M1 to M2).
This should prevent from maintaining models’ synchronisation.
This allows to manage a significant part of standard operations done on a model. The restriction is when an element in M1 is deleted, M2 is not informed and will keep an invalid reference. So you have to clean up regularly. But since all communication from M1 to M2 is forbidden, it would be difficult to do better.

Thank you Samuel

Copyright © Eclipse Capella, the Eclipse Capella logo, Eclipse and the Eclipse logo are Trademarks of The Eclipse Foundation.