Community technical support mailing list was retired 2010 and replaced with a professional technical support team. For assistance please contact: Pre-sales Technical support via email to sales@march-hare.com.
Our current system is comprised of many windows services and several static libraries (providing common behavior) which these services make use of. In addition there are third party libraries that these services link with. At this point all of these projects are at the same level in the sccs system. We're moving from vss to cvs so we figured it's a good time to make whatever changes we should in the repository. I was thinking that there might be some benefit in changing things around such that the dependency was reflected in the hierarchy. And so that there is no duplication of objects (source, binary for third party stuff, etc.) in the repository this hierarchy would be virtual making use of modules or modules2 to create this virtual layer. The problem we have today, as I see it, is that if a developer is only interested in serviceA (making changes and building) he/she would have no idea what other modules are required to build that service. Unless they wanted to put some time and effort into understanding the entire build so that they could only check out the modules they needed, they would have to check out the entire project and build everything. Well maybe you wouldn't have to build everything if your build script allowed you to specify a target, but you would most likely have to check out everything since you would not know which modules serviceA is dependent on. If, however, you created this virtual hierarchy then the developer would only have to checkout the serviceA module and build it. Lets say serviceA is dependent on userlib1 and userlib3 and 3rdParty\product1 and 3rdParty\product2. Then at the repository you would have the following modules: repository\project1\serviceA repository\project1\userlib1 repository\project1\userlib2 repository\project1\userlib3 repository\project1\3rdParty\product1 repository\project1\3rdParty\product2 repository\project1\3rdParty\product3 and via the modules or modules2 you would define the following virtual hierarchy: repository\project1\serviceA repository\project1\serviceA\libs repository\project1\serviceA\libs\userlib1 repository\project1\serviceA\libs\userlib3 repository\project1\serviceA\3rdParty repository\project1\serviceA\3rdParty\product1 repository\project1\serviceA\3rdParty\product2 Does any of this sound reasonable? If this is a reasonable thing to do the one problem I see with it is that if you are working on several modules you could have a lot of duplicated files contained in your working directory. Thanks, Nick