I recently faced the situation of deciding whether to go with single repository or multiple repositories for the same project. No unanimity in dev community on which is preffered. Often, it boils down the choice of people involved.
In my case, I considered the following factors to make this decision.
- Deployment consideration – Are all the code goes in to same machine? Or different machines?
- Logical code separation.
- Development team – Are these developed by different teams?
- Versioning requirement – Are they independently versioned?
- Repository management.
- Dependencies management – More than one repository, meaning dependencies have to be taken care of.
- Release management – Do they need independent releases?
- Size of the codebase – Larger the codebase, higher the need to split.
- Impact of single feature change across repositories – In case of multiple repositories, for a single feature that impacts all of them, it’s difficult to track down the change.