-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comparison of two commits (diff) #10
Comments
EMF Compare will provide every single Diff between the given models. We need to process and filter this information to create our own diff model (see class |
@jbsarrodie I've been stuck on this problem for the last few weeks and need some design help. ;-) I can get all of the pieces of the puzzle from EMF Compare which provides us with several
So, as can be seen from the screenshot above we have a lot of literal information.
I've spent some time trying different approaches and fail each time. I also tried presenting it like the model tree, but that failed because you need to show two trees (left and right) and that became cumbersome and complicated. This is an important feature for coArchi 2 and we'll need to use it when handling merge conflicts. |
@jbsarrodie I'm back to this again. I'm trying a new approach to getting the changes of an object. For example, if a concept is added to a folder we want to see that concept at the high level in the changes tree, not the parent folder. However, the problem remains - how do we show multiple changes to an object? This screenshot shows the following changes to a "Gap" concept:
Do we want to show these changes in the tree? Or somewhere else? Or differently? |
We could show the changes of an object in a separate table below the tree. The disadvantage of that approach is the user has to click on each object to see the changes. The advantage is it is less cluttered. |
This has turned out to be so complicated that, after months of working on this and going wound in circles, I've failed to come up with a working solution. I'm going to have to abandon this and just say "something changed." |
This is very similar to what I had in mind. I should be able to find some time this week to check it and contribute some code.
Let me have a look first, I'm sure what you've done so far is quite usable ;-) |
@jbsarrodie Thanks. I think the problem is that one model transaction can create so many Diffs under the hood that it's difficult to either filter these or combine them to show something friendly. For example adding a new element to a view creates 4 Diffs - a new view object, new Bounds, a new reference to underlying concept, etc. Then the code becomes complicated - "If it's a certain type of Diff, and the parent is a whatever, and the reference is a whatever, and it's a Monday...." if you know what I mean. ;-) I think for now what we show the top-level changed objects that changed. And the tree nodes should be initially collapsed. Then a power user can expand the tree nodes to see the diffs and the underlying details if they want. Then perhaps later re-visit this and fine tune it. |
Before handling merges I'm working on how to display the difference between two commits, or one commit and the "working tree" (uncommitted changes).
At the moment all new code is in the
dev
branch (which is continuously being updated and force pushed.This is how it looks now:
Selecting a View shows a visual comparison as we do it in coArchi 1.
But a View can appear twice if it is added:
Also, changing the name of a concept will show twice:
So, the tree at the moment is a "raw" view of all changes, additions, deletions of objects and their parent objects. We need to change this so it makes more sense.
The text was updated successfully, but these errors were encountered: