如何在SVN存储库(或多个存储库)中组织多个相关 Visual Studio解决方案/项目?
E.g。我有两个共享几个常见项目的应用程序(解决方案):
+ Application_1
- Company.Core
- Company.Connections
- Company.Data
- Company.A1.DAL
- Company.A1.BL
- Company.A1.UX
+ Application_2
- Company.Core
- Company.Connections
- Company.Data
- Company.A2.DAL
- Company.A2.BL
- Company.A2.UX
没错,Application_1和Application_2共享相同的SVN root ,因为它们使用的是通用项目:
/svnroot
/common
/trunk
/Company.Core
/Company.Connections
/Company.Data
/app1
/trunk
/A1.DAL
/A1...
/app2
/trunk
/A2.DAL
/A2...
这样做的原因是确保任何版本都具有公共文件夹中的最新可用程序集,并且每台计算机上的结帐始终是一致的。
所以我想知道的是:
答案 0 :(得分:2)
您如何设置存储库完全取决于您以及它对您的组织的工作方式。我已经看到了几种方法,多年来,没有找到可靠的建议。
修改的
最后一部分写得很糟糕。我的意思是“没有可靠的建议”,没有一条建议说“你应该按照以下方式构建你的存储库......”所有的建议都表现为“这对我们有用”以及每一种方式布局回购工作为他们工作,布局各不相同。所以我的意思是“没有适用于每个组织的可靠建议”。
结束编辑
但是,您的存储库结构非常接近我们的存储。我们有数百个项目,以及几个根节点。所有这些都在同一个存储库中。
与您一样,我们有一个公共目录,用于保存具有常用功能的项目,我们将这些功能添加为其他节点中的解决方案中的项目的参考。这是我们在经过反复试验的过程中经过多次重组之后得出的结果,并且它对我们有用,所以我会对你的结构竖起大拇指。
回答您的具体要点
作为旁注,这种结构也使得设置构建服务器变得容易。当我们设置了CruiseControl.NET构建服务器时,我们可以通过指向.sln文件进行一次检查并构建所有内容,就像在visual Studio中一样。将它放在一个回购中并遵循我刚刚制定的指导原则,这使得构建我们的构建变得非常容易。