Version control TFS 2012中管理共享资源的不同策略的利弊

Version control TFS 2012中管理共享资源的不同策略的利弊,version-control,Version Control,背景 根据Visual Studio ALM Rangers的说法,TFS 2012中有两种主要的资源共享方法(例如,在许多单独的产品中使用的公共库): 工作区映射,设置工作区,使其指向每个所需库和产品的适当版本 共享文件夹,使用分支/合并来获取和更新共享资源 乍一看,共享文件夹似乎是一个不错的选择,但我正在与之合作的一个客户在Starteam中遇到了很多这种方法的问题,因此不愿意在TFS中再次尝试。我目前正在协助客户从Starteam迁移到TFS 我列出了每种方法的优缺点,但我不确定是否遗

背景

根据Visual Studio ALM Rangers的说法,TFS 2012中有两种主要的资源共享方法(例如,在许多单独的产品中使用的公共库):

  • 工作区映射,设置工作区,使其指向每个所需库和产品的适当版本
  • 共享文件夹,使用分支/合并来获取和更新共享资源
乍一看,共享文件夹似乎是一个不错的选择,但我正在与之合作的一个客户在Starteam中遇到了很多这种方法的问题,因此不愿意在TFS中再次尝试。我目前正在协助客户从Starteam迁移到TFS

我列出了每种方法的优缺点,但我不确定是否遗漏了什么

工作区映射:

  • 易于设置和理解
  • 易于在多个产品中测试库更改
  • 轻松获取库中的最新更改,并向库提交更改
  • 无可追溯性,或至少可追溯性较低,例如,如果产品a中引入了库中的更改,如何在产品B中跟踪该更改
  • 库中的更改可能会以不受控制的方式影响产品
  • 构建变得更加复杂
  • 每个用户必须单独设置其工作区(但TFS 2012 Power Tools中有工作区模板)
文件夹映射:

  • 所需的一切都在给定的分支中配置
  • 产品和分支之间的隔离
  • 构建被简化
  • 加强对变化的控制
  • 需要更多的磁盘空间
  • 需要以分支/合并和分支设置的形式进行更多管理
一个特别的问题是如何测试几个产品中的库更改。据我所知,这需要在产品A中进行测试,然后反向集成到库中,然后正向集成到产品B,然后测试该产品,等等

结论和最后一个问题

该客户已经成功地在Starteam中使用了类似于工作区映射的东西10年了,并计划在TFS中继续使用该方法。尽管他们在跟踪影响多个产品的库更改方面存在问题

他们担心文件夹共享会变得混乱和复杂


我的问题是,我是否遗漏了上面列表中的某些内容?对于组织不应该使用工作区映射,或者为什么应该使用文件夹共享,是否有更多的原因。

这可能比程序员的堆栈交换更好?