我正在考虑从VSS迁移一个非常大的代码库,主要是C ++到SVN。作为练习的一部分,我想将代码分成更小的项目,以便可以单独进行处理。最大的绊脚石是处理项目依赖项,其中一个项目需要来自其他项目的dll(和标题)。
目前,开发人员从VSS获取所需的项目并在本地构建它们,项目文件假定已经检查了所有需要的项目并且与之相关。这显然是一场噩梦,特别是当需要不同版本的东西时。
在过去的几年里,我被maven宠坏了,我过去的大规模C ++已经在UNIX和Linux上了。我已经研究过像nuget这样的东西,但我们已经决定尝试将解决方案保留到只使用SVN和visual studio构建文件。
我首选的解决方案是使用SVN外部代码为项目提供标签所需的标题和二进制文件,并让项目通过变量引用它们。这是很直接的,我遇到的问题是当需要对其依赖的项目进行更改时,例如图书馆改变。
假设我有一个名为Product1的项目,另一个叫做CommonLib1。我希望通过一个变量为Product1引用CommonLib1提供项目文件,默认值为引用SVN外部提供的文件。然后,当需要更改CommonLib1时,开发人员可以检出该项目,将其加载到他们的工作区,在visual studio中添加依赖项,该项目将定义将覆盖Product1中的设置的相同变量。
我可以得到的最近似乎是设置一个环境变量来覆盖设置,但这需要手动设置和VS重启。我想让事情尽可能自动化,让生活更轻松,部分适合没有经验的开发人员/新项目,也适合现有的开发人员,这样他们就可以继续工作并获得更高的速度。
答案 0 :(得分:0)
完全没有按照我的意愿实现这一点。相反,我只是将svn:externals添加到依赖项目的标记中。它有效,但在处理多个项目时有点笨拙。