好的,设置很简单。
假设我们在TFS中有以下源代码管理层次结构 $ /:
/Common
/Library1
/Library2
/ProductA
/ProductB
现在每个产品都有一个团队,因此在源代码管理方面,每个产品都有权限#34;用于授予该特定团队访问权限的文件夹(产品A团队已在" /产品A"等上提供权限。)
现在任何给定的产品(A,B,......)都可以使用公共库。 我是否授予/ Common / LibraryX贡献(或读取)权利?或者我将LibraryX的副本分支到ProductY?
/Common
/Library1
/Library2
/ProductA
/Library1-ProductA (branched)
/ProductB
/Library1-ProductB (branched)
/Library2-ProductB (branched)
这些"产品组中可能有自由职业者或其他人。因此,我希望能够严格控制他们可以看到的内容以及他们可以修改的内容。
我更喜欢分支机构。然而,这可能意味着许多额外的工作,因为我必须确保任何部署都不会破坏另一个应用程序。
E.g。如果Library1是一个SharePoint项目,它将成为ProductA和ProductB的一部分,我必须确保部署最新版本(因为只能进行一个GAC部署!)并且它不会破坏任何东西
如果我将Library1从部署过程中移除,我将不再使用自动构建。也不好。
答案 0 :(得分:0)
最佳做法是使用NuGet。为每个公共库创建NuGet包,并使用包管理器来使用它们。这样,公共图书馆的“发布”将正式化。如果要向公共库添加功能,可以有意识地决定增加发布版本,客户可以决定是否要升级。
如果你要走这条路线,那么最好将每个公共图书馆的分支机构分开,因为它们本身就是一个产品。