Open Wuestengecko opened 11 months ago
Just a few more words regarding the effect / criticality of this issue - the effect is that almost all of the changes related to traceability (realization links) are broken silently. In Capella you will see that an object is realized by "operational capability" but that is it.
Diff/merge with git is essential functionality in our context and this issue currently endangers a few running projects that were not allowed to use Team4Capella - basically any project with strict change control requirements (under assumption that EMF diff/merge is a trustworthy core technology). We would love to see some root cause analysis and solution options as well as eager to help resolving this issue.
Hi! I'm one of the engineers at DB, where we use Capella in different internal projects. In one of them, we encountered an interesting issue with the EMF Diff/Merge tool when it comes to Git merge conflicts in combination with fragmented models.
After performing the merge, some of the links that came in from "their side" (in git terminology) no longer use the correct relative workspace file paths. Instead, the link seems to point to somewhere in the git index, which - when opening the model afterwards - no longer exists.
We managed to reproduce the issue on our public "coffee machine" demo model. Compare the following working FunctionRealization:
https://github.com/DSD-DBS/coffee-machine/blob/4a2569b73222255ec380d3607f90421675d8487d/fragments/SA.capellafragment#L46-L48
With this non-working version after using the merge tool:
https://github.com/DSD-DBS/coffee-machine/blob/3ba35b1888a23be66fa632621cd138d79851efdf/fragments/SA.capellafragment#L46-L48
Steps to reproduce:
index-links/base
branch.index-links/right
branch.)index-links/left
.)index-links/merged
.)You should now have a Git history that looks similar to this:
(Use
git log --format=oneline --graph
to double check, and make sure that "their changes" come in from the right. The Repository History view in Capella ignores this ordering when drawing the graph.)Importantly, "our side" and "their side" must be parallel branches that both have the base commit as their immediate and only parent commit.
When opening the model now and inspecting the "make coffee" / "make black water" SystemFunction (depending on whether you accepted "our" or "their" name), you'll notice that the "realized functions" says "undefined" instead of "make delicious drinks" again. When inspecting the XML, you will see a broken link with an
index:
prefix.Affected versions: We successfully reproduced this on Capella 6.0 and 6.1, using the steps described above.