假设我有一个如下所示的存储库布局:
|Root
|->CommonLib
|->ProjectA.PartA
|->trunk
|->lib
|->src
//etc
|->ProjectA.PartB
|->trunk
|->lib
|->src
//About four more projects.
现在我将它们拆分为这样,这样我就可以在每个不同的部分工作并在需要时分支它们。
ProjectA.PartA使用ProjectA.PartB作为参考。
在我构建它之前,我将所有项目中继放在一个src文件夹中,只需将该文件夹拉下来,然后将项目添加到解决方案中,只需在它们之间添加项目引用即可。
虽然它们都在同一个文件夹中,但是我觉得它可能不是很好的做法,并且它会强制您使用相同的文件夹检出结构或依赖关系中断。
我想在哪里构建每个项目并将二进制文件存储在根目录下的CommonLib文件夹中,然后在每个项目上使用svn:externals将其依赖项从CommonLib文件夹下载到其lib文件夹中并添加一个引用它那么项目本身。
上述解决方案是否会比添加项目引用更好?
有内部项目参考时的常见做法是什么?
如果它们都是同一“目标”的一部分,我应该在所有项目文件夹上设置外部以将依赖项作为源下拉出来吗?
感谢。
答案 0 :(得分:2)
SVN副本很便宜,SVN合并很容易。所以我会坚持使用一个根解决方案并让项目相互引用。如果需要,将整个事情分支,然后重新集成。
答案 1 :(得分:1)
通常我会使用外部而不是库本身从每个解决方案中引用项目。在这种情况下,在每个项目中进行单元测试以进行回归测试非常重要。
存储二进制文件并引用外部文件也很好(也可能更安全)。如果我这样做,我会标记每个版本的依赖二进制文件并引用它。如果我想升级,我会更改外部以使用新标签 - 这样可以更安全地升级库。
编辑: 我刚刚意识到你分成了同一个项目的两个部分 - 我上面的答案是针对多个项目的共享库。我会把它们放在和怀亚特所说的相同的行李箱中