So here's the story.
In the beginning we started with a plain MySQL repository. The only "security" was the ODBC connector which needed a user/password to be configured. That worked for quite a time with just a few modellers working mostly in different parts of the model(s). Until one day some work of one modeller was lost due to unknown reasons. Luckily it was only some hours work, but it was a signal.
Back to the very past: In a different model/part of the company we worked on a shared model (MS SQL) with VC packages. This was horrible for two reasons. The first was the checking out/in took quite some time for packages and (the worse part) dead-locked people in their work. Of course you could avoid that by better cutting a project but that had not been done (it wasn't me!). But the even worse part was that some people used Get ALL Latest which regularly clobbered the whole repository. So I had this in mind.
Back to the future: Having had the bad experience with VC on a central repository we decided to use local EAPs for single modelers. This from our new perspective seemed to have the advantage that each modeller could branch, develop independently and merge back when done. Now, we didn't go with branching in the beginning but just with VC on the main branch. This proofed to be "sub-optimal". First the Get Lastest did not work (no idea whether this was du to our very old ClearCase 2003 installation) and you had to update your view manually befor issueing Get Latest. The second it proofed that even after a Get Latest diagrams were not loaded correctly. Parts were missing especially when we had cross package dependencies.
Now we stepped into a real mess. That was when we decided to use branch and merge. Branching seemed to be fine and modellers could set up their models with no pain - except it took half an hour or so to build the model. And special care had to be taken for the reference data (images). Then local modelling was fine. --- But modelling is nothing you do in your chamber. --- You need to merge your results. And that was a real pain. It definitely took at least a day to merge results. And you never were sure that everything was transferred. I can't tell you what we suffered these days.
So we made a cut. We moved back to our central MySQL, enabled security and turned on Require Lock to Edit. That (up to now) seemes to be the right way to go (except for
this). Concurrent work is possible and modelers can see other modeler's work at once. This way communication between modelers is extremely enhanced. Also we are able to have sanity checks via automation, backup via automation and reference data backup also via automation. The only draw back is the user administration which has to done for each repository separately. But we'll work on automation support for that too.
So that's the story in short. It always depends on your requirements which kind of repository configuration you need. Finding out the right way can be painfull. And you might be forced to try different directions.
q.