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

7
我们正在从SourceGear Vault转换到TortoiseSVN,并使用VisualSVN进行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配合工作?

2个回答

4

在这里找到了最好的答案

引用项目

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

并且在这里

包括共同的子项目

有时候,您会想在工作副本中包含另一个项目,比如一些库代码。您不想在存储库中复制此代码,因为那样您将失去与原始(和维护的)代码的联系。或者,您有几个项目共享核心代码。处理这种情况至少有3种方法。


2
我知道你在十多年前提出了这个问题,但我很高兴告诉你,VisualSVN插件在支持多个工作副本方面已经取得了进展。
VisualSVN 7.1和6.5支持在单个解决方案中使用多个工作副本。这一新功能适用于Visual Studio 2019和2017用户。
从主要的下载页面下载最新的VisualSVN版本。还请参阅文章KB7:在VisualSVN中使用多个工作副本

我必须至少回应并赞扬你们/VisualSVN的敬业精神! - Ted

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接