Currently we are using Source Safe and have started migration to Subversion. All of our external SDK's(> 500 MB) are held in Source Safe right now, and I am looking for ways to move them from VSS to a repository.
We have C++ (mostly), C# (many), Java (few) projects. Hundreds of projects, all running on Windows.
I looked at a couple of dependency managers but I'm not satisfied:
- NuGet - good for .Net but painful for C++
- Ivy - not look in depth, but doesn't seem acceptable for C++
First question: what else should I check? It should be easy to use for a front-end developer. Best case is a simple build within the IDE.
Currently I am inclined to this solution:
Allocate some rarely used drive, like S: and declare it as 'DEV HOME'.
Then place externals here:
S:\SDK\boost\1.30\... S:\SDK\boost\1.45\... S:\SDK\oracle\agile_220.127.116.11\... S:\SDK\IBM\lotus_8.0\... S:\SDK\IBM\lotus_9.0\... S:\Tools\NuGet\nuget.exe S:\Tools\clr\gacutil.exe
Autobuild machine will hold mastercopy of this 'DEV HOME'. Every developer should copy necessary SDKs from autobuild machine to local and create a 'fake' disk with subst.
I can't find any big problems with this solution:
- Branches. Projects in different branches contain references to different versions of SDK (boost for example)
- Version of external component will not change too frequently, so there will not be hundreds of, say, boost versions.
- Easy for developers to setup.
- Absolute paths supported by any tool.
- Personally for me it is not beautiful solution.
- Disk (S:) can be busy
- Can't be done in Linux (but currently we're not interested in it)
Second question: what problems can you see with this solution?