The model and UML designs Multi-user editing merging is for my personal
point of view impossible to solve except manually. You need to permanently
check the quality of the saved information on your SVN/CVS.
I mean that in Java you have the compiler which clean all the project
after each commit or change. In the UML metamodel this compiler doesn't
exist therefore the last commit is always what is saved on the SVN/CVS
server.
A work around could be to check that your model is valid before and after
every commit.
I think that the best practice is to have one large model (e.g. the
project metamodel which includes all the models) and a graphical file for
each diagram. Doing that make it less painful to merge all team commits
when used for a large project in which many users are modeling
simultaneously. This is the new architecture I asked to be implemented at
Omondo in 2007.
The reason of this demand was that we have tried to save all model
information as tags in the java code some years ago but the model was lost
as soon as the code was refactored. As you know it is impossible to
complete an advanced project if you don't refactor the code. The problem
was that at this refactoring stage some important pieces of the model was
lost and even worst was that the EMF model was then corrupted. This is
also for me the limit of the use of EMF tags in the java code in order to
save the model.