0

我正在考虑将一个非常大的代码库(主要是 C++)从 VSS 迁移到 SVN。作为该练习的一部分,我想将代码分成更小的项目,以便可以单独处理它们。最大的绊脚石是处理项目依赖关系,其中一个项目需要来自其他项目的 dll(和标头)。

目前,开发人员从 VSS 获取所需的项目并在本地构建它们,项目文件假定所需的所有内容都已签出并与之相关。这显然是一场噩梦,尤其是当需要不同版本的东西时。

在过去的几年里,我被 maven 宠坏了,我过去的大规模 C++ 一直在 UNIX 和 Linux 上。我已经研究过像 nuget 这样的东西,但已决定尝试将解决方案简化为仅使用 SVN 和 Visual Studio 构建文件。

我首选的解决方案是使用 SVN 外部组件为项目提供标签所需的标头和二进制文件,并让项目通过变量引用这些标头和二进制文件。这很直截了当,我遇到的问题是何时需要对它所依赖的项目进行更改,例如库更改。

假设我有一个名为 Product1 的项目和另一个名为 CommonLib1 的项目。我希望做的是通过一个变量为 Product1 引用 CommonLib1 提供项目文件,该变量默认引用 SVN 外部提供的文件。然后,当需要更改 CommonLib1 时,开发人员可以签出该项目,将其加载到他们的工作区中,在 Visual Studio 中添加依赖项,该项目将定义相同的变量,该变量将覆盖 Product1 中的设置。

我能得到的最接近的似乎是设置一个环境变量来覆盖该设置,但这需要手动设置和 VS 重新启动。我想让事情尽可能自动化,让生活更轻松,部分是为没有经验的开发人员/项目新手,但也适用于现有的开发人员,这样他们就可以继续工作并获得更高的速度。

4

1 回答 1

0

完全没有按照我的意愿实现这一点。相反,我只是将 svn:externals 添加到依赖项目的标签中。它可以工作,但在处理多个项目时有点笨拙。

于 2013-12-05T13:30:52.587 回答