VisualSVN和类库不在工作副本根目录中

Ted*_*Ted 7 svn version-control tortoisesvn visualsvn visual-studio

我们正在使用VisualSVN从SourceGear Vault切换到TortoiseSVN以进行Visual Studio集成 - 非常喜欢它.但是,我们在多个不同的应用程序中引用了多个类库,这些应用程序不是任何应用程序中工作副本根目录的一部分.处理此问题的最佳方法是什么,以便我们可以继续使用Visual Studio集成,但仍然保留位于每个项目/应用程序根目录之外的各种类库?SourceGear对此没有任何问题.

可以在资源管理器中使用TortoiseSVN单独添加类库,但是无法在Visual Studio中将更改提交到工作副本之外的任何内容; 也没有VisualSVN"交通灯"指示这些工作副本类库之外的状态.

顺便说一下,我们也将使用"一个包含许多项目的存储库"路径而不是多个存储库,特别是因为这是我们多年来一直工作的方式.

更新:

我重新阅读了之前看过的一些内容,发现svn:externals不仅仅是指在不同的存储库中使用代码,还可以用于在VisualSVN中使用多个工作副本.

请参阅http://www.visualsvn.com/support/topic/00007/http://svnbook.red-bean.com/en/1.2/svn.advanced.externals.html

但是,这是处理这个问题的最佳方法吗?有一个很好的线程可以解决问题,但并不能完全解决问题.

因此,使用svn:externals与否?是否使用多个存储库?同样,多年来我们在多个解决方案/应用程序中引用了共享类库中的代码,这对我们有用.现在如何最好地使用VisualSVN?

Ted*_*Ted 4

在这里找到了最佳答案:

参考项目

有时,构建由许多不同的签出组成的工作副本很有用。例如,您可能希望不同的子目录来自存储库中的不同位置,或者可能来自不同的存储库。如果您希望每个用户都具有相同的布局,您可以定义 svn:externals 属性。

这里

包含一个公共子项目

有时您会希望在工作副本中包含另一个项目,也许是一些库代码。您不想在存储库中复制此代码,因为那样您将失去与原始(和维护的)代码的连接。或者也许您有多个共享核心代码的项目。至少有 3 种方法可以解决这个问题。