首先,我知道这个问题: 你会如何组织一个 Subversion 存储库用于内部软件项目? 接下来,真正的问题是: 我的团队正在重组我们的存储库,我正在寻找关于如何组织它的提示。 下面是我们得出的结论: 我们有一个存储库、多个项目和多个 svn: foreign 交叉引用
\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 是 VisualStudio 项目(它导致单个。Dll 或 single。Exe)
我们计划这样布置仓库。主要的问题是,我们有多个解决方案,但是我们希望在解决方案之间共享项目。 我们认为将这些共享的项目移动到它们自己的解决方案中是没有意义的,因此我们决定使用 svn: foreign 来在解决方案之间共享项目。我们还希望将公共工具集和第三方库保存在存储库中的一个位置,并且它们在每个解决方案中使用 svn: foreign 引用它们。
你觉得这个布局怎么样?特别是关于 svn: foreign 的使用。这不是一个理想的解决方案,但考虑到所有的利弊,这是我们能想到的最好的办法。你会怎么做?