TFS:跨团队项目共享脚本的分支注意事项

时间:2014-08-13 16:12:57

标签: version-control tfs merge branch branching-and-merging

我们组织中有很多团队项目。

我的目标是拥有一个核心团队项目,让我们称之为$/Core,其中包含一个$/Core/Scripts文件夹,所有常见的构建/部署/等脚本都将存在于该文件夹中:

$/Core
└───Scripts
    ├───build
    │       build_functions.ps1
    │       build_tasks.ps1
    │       run_build.ps1
    │
    └───deploy
            deploy_functions.ps1
            deploy_functions_configuration.ps1
            deploy_functions_eventlog.ps1
            deploy_functions_web.ps1

我希望能够“分享”这个常见的主干到我们每个团队项目中:

$/Foo
└───Scripts

$/Bar
└───Scripts

$/WallaWalla
└───Scripts

$/Cucamonga
└───Scripts

我正在考虑通过分支实现这一点。这些是我们的前提:

  1. 根据每个项目的特定需求,不会自定义或修改脚本。
  2. $/Core/Scripts中继的内容始终优先于所有分支。
  3. 因此,如果我们发现错误或有想要包含在我们任何脚本中的功能,我们将转到$/Core/Scripts位置,并合并到所有分支。

  4. 问题:

    Source Control Explorer为我提供了两个选项:

    这将允许我选择一个目标:

    enter image description here

    enter image description here

    转换为分支......

    但我也看到这个选项可用。我可以选择所需的目标文件夹之一,使其成为分支。

    enter image description here

    enter image description here

    最后,我的目标$/Target/Scripts文件夹如下所示:

    enter image description here

    这是什么意思?

1 个答案:

答案 0 :(得分:3)

我建议在这种情况下根本不使用分支。

将Core \ Scripts文件夹保留为在共享脚本上进行开发的位置。然后只需将脚本文件夹复制到需要使用它的每个项目中。由于您只对一个地方(Core)中的脚本进行了更改,因此不需要分支/合并功能,简单的副本就可以了。如果要将最新版本的脚本拉入项目,只需重新复制Scripts文件夹即可。

分支到每个项目将完成同样的事情,但是有一个很大的缺点(并没有明显的好处,而不是一个简单的副本)。您不能在分支机构内拥有分支机构。而且我在某种程度上假设您可能希望在Project Foo中有多个分支(例如MAIN,DEV,HOTFIX等)。如果Project Foo将Scripts作为其中的分支,则严重限制了Foo的分支选项。