I'm fairly new to Mercurial and DVCS in general. I would appreciate any feedback on how to structure projects given the scenario below. We have a number of shared libraries which are included as dependencies in many of our projects. I understand how subrepositories can be used to include these dependencies but I'm not sure what the best approach is when dependencies rely on each other.
For example, we have a shared library that contains useful utilities and extension methods, let's call this LibX. We also have a shared library which implements a neat workflow mechanism called LibY. LibY uses LibX. We have a project called ProjectA that uses both LibX and LibY.
So, potential project structure:
/ProjectA /Dependencies /LibX (SubRepo) /LibY (SubRepo) /Dependencies /LibX (SubRepo)
Does this structure make sense? In terms of Visual Studio and adding dependencies, should we have a build script that builds LibX and LibY and include the built assemblies as references or should we include the projects in our solution?
Any thoughts on best practices given this scenario?