14 ms·
I think the problem you need to tackle is not whether your source control system can scale to handle your huge project as a single entity, but whether your whol
by mhw 16y ago
I think the problem you need to tackle is not whether your source control system can scale to handle your huge project as a single entity, but whether your whole development process is being hampered because you're looking at it that way. I would recommend you break your system down into a number of separate modules and manage them separately, giving the modules their own release schedules and properly managing the dependencies between them. "The granule of reuse is the granule of release" [1], so if you don't have a formal release process around individual modules, you can't reliably reuse them. If you do that you can create separate repositories for each module, and you'll then find that your branches are more tightly scoped (to a single module), merges are simpler as a result, volume of change is localised to the less stable modules and weird file types can be restricted to specific modules.
Once you've refactored your codebase you'll be in a position to make better choices about a source control system.
[1] http://www.objectmentor.com/resources/articles/granularity.pdf http://www.objectmentor.com/resources/articles/granularity.p...