具有多个项目和单个解决方案的SVN?

具有多个项目和单个解决方案的SVN?,svn,Svn,因此,目前我们有一个单一的解决方案,包含大约20多个项目。我们需要办理登记手续;但是,一些项目共享相同的公共库。当我们需要在SVN中为特定的项目创建一个标记时,问题就会出现。当我们向下拉该项目以进行更改时,我们还需要拉取当时使用它编译的库。所以它看起来是这样的: /tag /project1_1.0 + Project1_1.0 src code.. // COMPILES WITH COMMONLIB_1.0.dll /project2_1.0 + Project2_1.

因此,目前我们有一个单一的解决方案,包含大约20多个项目。我们需要办理登记手续;但是,一些项目共享相同的公共库。当我们需要在SVN中为特定的项目创建一个标记时,问题就会出现。当我们向下拉该项目以进行更改时,我们还需要拉取当时使用它编译的库。所以它看起来是这样的:

/tag
 /project1_1.0
   + Project1_1.0 src code..
   // COMPILES WITH COMMONLIB_1.0.dll
 /project2_1.0
   + Project2_1.0.dll
   // COMPILES WITH COMMONLIB_1.1.dll
 /project3_1.0
   + Project3_1.0.dll
 /CommonLib_1.0
   + CommonLib_1.0 src code...
 /CommonLib_1.1
   + CommonLib_1.1 src code...
我看到了一些关于使用svn:external的东西,这样当我们拉取project1_1.0时,它将拉取用它编译的公共库。然而,这是否意味着对于每个标记,我们都必须手动检查并使用svn:external添加正确版本的CommonLib

我们要做的是让每个项目都有自己的版本。然后,当转到QA/Prod时,我们在其项目名称和版本号下标记代码。因此,当应用程序运行时,我们检查事件日志并发现错误,然后我们可以检查版本号,然后返回SVN并提取相应的标记代码并进行更改。然而,我们不能只提取项目代码,因为我们需要知道编译使用了什么特定的库(不管它有多么过时)

这是一种很好的方法,还是我们应该检查整个解决方案?当我们只想对子项目进行更改时,这似乎有点过激。我们还没有想出一个很好的方法来使用SVN的版本控制