Version Control for Team Collaboration
I am planning to use MPS to implement a DSL which will be used by a team working concurrently on the same project.
This obviously creates the potential for merge conflicts, as the same nodes might be edited by different users and then pushed to the repository.
We're used to resolving these types of issues when working in textual languages, but our MPS-based language will be new for us.
Which version control option is best for handling these types of conflicts with MPS? We've used git in the past.
Is there are risk of major errors (eg - irreversible reference-breaking) being introduced during such a merge?
Thanks for any advice.
This obviously creates the potential for merge conflicts, as the same nodes might be edited by different users and then pushed to the repository.
We're used to resolving these types of issues when working in textual languages, but our MPS-based language will be new for us.
Which version control option is best for handling these types of conflicts with MPS? We've used git in the past.
Is there are risk of major errors (eg - irreversible reference-breaking) being introduced during such a merge?
Thanks for any advice.
Please sign in to leave a comment.
One drawback that you will experience is that members of the team will not be able to view commits as you would see them in the editor when viewing directly a text-based project on GitHub or BitBucket. Instead, they will see cryptic XML changes. This is not ideal and a web-based MPS viewer for model diffs would be great, but would probably be a substantial endeavor.
You can find our main projects on GitHub if you are still wondering about stability and risk mitigation: https://github.com/campagnelaboratory/
Have you ever experimented with custom editor code using general Java UI libraries? (eg invoking swing from MPS?)
If so, how would this work in this diffing context? Perhaps there'll always need to be a "native" MPS representation of a concept editor, even if there is a custom GUI perspective?