首先,我知道这一点:您将如何为内部软件项目组织Subversion存储库? 接下来,是一个实际的问题:我的团队正在重组我们的存储库,我正在寻找有关如何组织存储库的提示。(在这种情况下为SVN)。这就是我们想出的。我们有一个存储库,多个项目和多个svn:externals交叉引用
\commonTools /*tools used in all projects. Referenced in each project with svn:externals*/
\NUnit.v2.4.8
\NCover.v.1.5.8
\<other similar tools>
\commonFiles /*settings strong name keys etc.*/
\ReSharper.settings
\VisualStudio.settings
\trash /*each member of the team has trash for samples, experiments etc*/
\user1
\user2
\projects
\Solution1 /*Single actual project (Visual Studio Solution)*/
\trunk
\src
\Project1 /*Each sub-project resulting in single .dll or .exe*/
\Project2
\lib
\tools
\tests
\Solution1.sln
\tags
\branches
\Solution2
\trunk
\src
\Project3 /*Each sub-project resulting in single .dll or .exe*/
\Project1 /*Project1 from Solution1 references with svn:externals*/
\lib
\tools
\tests
\Solution2.sln
\tags
\branches
要清除词汇表:解决方案表示单个产品,Project是Visual Studio Project(导致单个.dll或单个.exe)
这就是我们计划布置存储库的方式。主要问题是,我们有多个解决方案,但我们希望在解决方案之间共享项目。我们认为将那些共享的项目移至他们自己的解决方案确实没有意义,而是我们决定使用svn:externals在解决方案之间共享项目。我们还希望将一组通用的工具和第三方库保留在资源库中的某个位置,并在每个解决方案中使用svn:externals对其进行引用。
您如何看待这种布局?特别是关于svn:externals的使用。这不是理想的解决方案,但是考虑到所有利弊,这是我们能想到的最好的解决方案。你会怎么做?