svn中的组织解决方案
如何在SVN存储库(或多个存储库)中组织多个相关的Visual Studio解决方案/项目 例如,我有两个应用程序(解决方案),它们共享几个常见项目:svn中的组织解决方案,svn,version-control,repository,Svn,Version Control,Repository,如何在SVN存储库(或多个存储库)中组织多个相关的Visual Studio解决方案/项目 例如,我有两个应用程序(解决方案),它们共享几个常见项目: + Application_1 - Company.Core - Company.Connections - Company.Data - Company.A1.DAL - Company.A1.BL - Company.A1.UX + Application_2 - Company.Core - Company
+ 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
/svnroot
/common
/trunk
/Company.Core
/Company.Connections
/Company.Data
/app1
/trunk
/A1.DAL
/A1...
/app2
/trunk
/A2.DAL
/A2...
对不对,应用程序_1和应用程序_2共享相同的SVN根,因为它们使用公共项目:
+ 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
/svnroot
/common
/trunk
/Company.Core
/Company.Connections
/Company.Data
/app1
/trunk
/A1.DAL
/A1...
/app2
/trunk
/A2.DAL
/A2...
这样做的原因是确保任何版本都具有公共文件夹中最新的可用程序集,并且签出在每台计算机上始终一致
所以我想知道的是:
- 每个解决方案都应该有自己的存储库吗李>
- 如果是,我如何共享常见项目并确保它们是最新的
- 我是否将公共程序集添加为已生成的依赖项(.dll),并将它们分别提交到每个解决方案存储库?如何使这些构建自动化
- 我认为您应该有一个存储库,它的结构与您描述的一样
- 这允许您在一次签出中获得代码,确保所有内容都易于维护并保持最新。只需添加您的参考,因为所有内容都在同一回购协议中
- 最后,我们的一般经验法则是,始终在必要时添加对项目的引用,并且不要签入二进制文件,除非您需要一个公共dll并且没有源代码(例如第三部分组件)。例如,我们在“公共”文件夹中的“共享dll”中有Microsoft.AntiXss dll和Idunno.Anti-Csrf dll
作为旁注,这种结构还可以轻松地设置构建服务器。当我们设置CruiseControl.NET构建服务器时,我们让它进行一次签出,并通过指向.sln文件构建所有内容,就像在visual Studio中一样。通过一次回购并遵循我刚才制定的指导原则,我们的构建非常容易。非常感谢,我认为我们做了一些非常糟糕的事情,但所有这些都是正确的观点。我不想签入二进制文件,如果我将我们的回购协议拆分为多个回购协议,这可能是必要的。