Tfs Team Foundation服务器最佳实践,分支“共同”项目或授予许可?

Tfs Team Foundation服务器最佳实践,分支“共同”项目或授予许可?,tfs,permissions,branching-and-merging,Tfs,Permissions,Branching And Merging,好的,设置很简单 假设我们在TFS$/中有以下源代码管理层次结构: 现在每个产品都有一个团队,因此在源代码管理中,每个产品文件夹都有权限授予对特定团队产品的访问权限,团队对/product a有贡献权限,依此类推 现在,任何给定的产品A,B。。。可以使用公共库。我是否授予/Common/LibraryX的投稿权或阅读权?或者我是否要将一份副本分给LibraryX以供ProductY使用 这些产品组中可能有自由职业者或其他人。所以我想对他们能看到的东西和他们能修改的东西有严格的控制 我更喜欢树枝。

好的,设置很简单

假设我们在TFS$/中有以下源代码管理层次结构:

现在每个产品都有一个团队,因此在源代码管理中,每个产品文件夹都有权限授予对特定团队产品的访问权限,团队对/product a有贡献权限,依此类推

现在,任何给定的产品A,B。。。可以使用公共库。我是否授予/Common/LibraryX的投稿权或阅读权?或者我是否要将一份副本分给LibraryX以供ProductY使用

这些产品组中可能有自由职业者或其他人。所以我想对他们能看到的东西和他们能修改的东西有严格的控制

我更喜欢树枝。然而,这可能意味着要做很多额外的工作,因为我必须确保任何部署都不会破坏另一个应用程序

例如,如果Library1是一个SharePoint项目,它将是ProductA和ProductB的一部分,我必须确保部署最新版本,因为只能部署一个-GAC部署!它不会破坏任何东西


如果我将Library1从部署过程中移除,我将不再有工作自动化构建。也不是很好。

最佳实践是使用NuGet。为每个公共库创建NuGet包,并使用包管理器使用它们。这样,公共库的发布将正式化。如果要向公共库添加功能,可以有意识地决定增加发布版本,客户机可以决定是否要升级

如果您要走这条路,最好将每个公共库的分支分开,因为它们本身就是一个产品

/Common
   /Library1
   /Library2
/ProductA
/ProductB
/Common
   /Library1
   /Library2
/ProductA
   /Library1-ProductA (branched)
/ProductB
   /Library1-ProductB (branched)
   /Library2-ProductB (branched)