首先,我知道这一点:您将如何为内部软件项目组织 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
明确词汇:解决方案意味着单个产品,项目是一个 Visual Studio 项目(导致单个 .dll 或单个 .exe)
这就是我们计划布局存储库的方式。主要问题是,我们有多个解决方案,但我们希望在解决方案之间共享项目。我们认为将这些共享项目转移到他们自己的解决方案中没有任何意义,因此我们决定使用 svn:externals 在解决方案之间共享项目。我们还希望将通用工具集和第 3 方库保存在存储库中的一个位置,并在每个解决方案中使用 svn:externals 引用它们。
你觉得这个布局怎么样?尤其是关于 svn:externals 的使用。这不是一个理想的解决方案,但考虑到所有利弊,这是我们能想到的最好的解决方案。你会怎么做?