Ideal conditions for codebases

Looking at companies around. Folks do have a lot of repos with different codebases. Having come from doing that myself, stuff gets quite difficult when you have to deal with SVN externals and different models required from different codebases and versioning.

For example, let's say you have a model called 'Person'. It's in a minor codebase called 'adminarea'. Let's say you're given a task to update that model but you're using a different codebase called 'monitor'.

Now that creates a dependency. Monitor must now be kept up-to-date when 'adminarea' changes, otherwise you get compatibility issues.

At some places where I've worked, they've got around this by creating a shared codebase and each application or other codebase runs tests to make sure compatibility doesn't break the respective applications.

If you don't have these tests, then the only way of working is duplication, not SVN externals.

Tbh, the best way to do this is one codebase fits all. Basically, create a codebase all projects in that language. Inside there, create a shared library folder and shove your models in there.

Then foreach application wants to reference those libraries, developers are all aware of it and the compatibility problems become much better to manage.