我们正在使用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
但是,这是解决此问题的最佳方法吗?有一个good thread可以解决问题但不能完全解决问题。
因此,使用svn:externals与否?是否使用多个存储库?同样,多年来我们在多个解决方案/应用程序中引用了共享类库中的代码,这对我们有用。现在如何最好地使用VisualSVN?
答案 0 :(得分:4)
找到最佳答案here:
参考项目
有时构建一个由多个不同签出组成的工作副本很有用。例如,您可能希望不同的子目录来自存储库中的不同位置,或者可能来自不同的存储库。如果希望每个用户具有相同的布局,则可以定义svn:externals属性。
here:
包括一个共同的子项目
有时您会希望在工作副本中包含另一个项目,也许是某些库代码。您不希望在存储库中复制此代码,因为这样您将失去与原始(和维护)代码的连接。或者您可能有几个共享核心代码的项目。至少有3种方法可以解决这个问题。
答案 1 :(得分:2)
我知道距您提出此问题已有十多年了,但是很高兴告诉您,在VisualSVN插件中实现对多个工作副本的支持已经取得了进展。 VisualSVN 7.1.0-alpha1现在可以进行测试了,它具有对单个解决方案中的多个工作副本的实验性支持。
请参阅pre-release downloads page。请注意,新版本仅支持Visual Studio 2019。
PS请参阅文章KB7: Using Multiple Working Copies in VisualSVN。我们还将很快对其进行更新。