【问题标题】:TFS 2008: Questions about auto Builds, Labels and general versioningTFS 2008:关于自动构建、标签和一般版本控制的问题
【发布时间】:2011-01-22 14:56:36
【问题描述】:

先介绍一下背景...

我正在为我们的项目设置版本编号系统,该项目目前只有一个开发分支,但我们现在正朝着我们的第一个部署迈进。我们正在使用 TFS,并且在我们的开发分支上使用夜间构建。

我们可能会采用的方式是,当我们为发布做好准备时,我们会从 dev 中取出一个分支并将其命名为 1.x。这应该是一个测试分支:我们对其进行测试,修复它(然后合并回 dev),再对其进行一些测试,然后当一切正常时,我们从 1.x 分支中取出另一个分支并将其命名为 1.0。正是这个分支被部署到生产环境中。生产中的任何修复都将针对 1.x 进行,经过测试,然后将创建一个新的分支 1.1。

我的问题在于 1.x 分支的测试。在测试之前,分支会因为明显的原因被锁定。我的问题是 QA 要求针对“版本号”进行一轮测试,如果测试失败,下一轮测试将针对新的“版本号”。我们的开发人员希望将“版本号”与发布相关联,并且测试可以迭代该版本......所以这里有冲突。

我的第一个想法是使用内部版本号作为测试代码的时间点。当提交新版本进行测试时,1.x 分支再次被锁定并开始构建,生成的 VSTS 编号成为“v1.0 的发布条件 1”。将 RC 映射到我们可以在电子表格中手动执行的构建...

...然后有人提到标签,并且代码应该在测试之前被标记和构建。我以前从未使用过标签,并且刚刚读到构建本身会在 TFS 中创建标签。

我现在对去这里的最佳方式感到困惑。对发布候选版本使用内部版本号是否足够?在这里手动标记是否有任何用途(我能看到的唯一好处是我们可以给出自己的名称和描述)?我是否可以告诉 TFS 在运行构建时不要创建标签,而只是在重要的时间点做我们自己的标签(例如,并非每个构建都将成为候选版本)?如果是这样,在每次构建后创建标签不是一个坏主意,标签能给我什么?

我想我对 changsets、内部版本号/名称和标签的位置感到困惑......

这是一个广泛的问题,但它是我不能 100% 确定要问什么的问题之一。任何帮助表示赞赏。

【问题讨论】:

    标签: version-control tfs build label


    【解决方案1】:

    ...然后有人提到标签,并且代码应该在测试之前被标记和构建。我以前从未使用过标签,并且刚刚读到构建本身会在 TFS 中创建标签。

    您阅读的内容是正确的。使用 TFS(与 SourceSafe 不同),每个 服务器操作构成一个“已知时间点”,以后可以参考。您可以通过执行Get Specific Version... 并查看Version 下拉列表来了解我的意思:在TFS 2005 中,我看到的相关的是ChangesetDateLabel。现在,正如您所说的那样,每个构建都会自动创建一个标签。这意味着在将来的任何时候都可以完全按照任何给定变更集之后的方式检索代码;在任何给定日期;以及应用任何特定标签的时间,因此包括任何构建完成的时间。

    结果是您可以使用自己的标签,也可以不使用,完全由您自己决定 - 检索给定代码快照的能力无论如何都会存在。我不建议尝试禁止 TFS 为每个构建生成标签(我不知道这是否可能) - 标签不会花费您任何费用。

    【讨论】:

      【解决方案2】:

      您的分支 1.x 是一个合并 branch,其中将包含许多增量小演变。
      锁定分支不是答案。

      设置标签(专门命名为“用于 QA 测试”,并锁定以便无法移动该标签,这是向 QA 团队发出信号的常用方法,他们可以构建自己的工作区并检索该确切标签。 然后他们可以开始针对代码进行测试。
      在每次构建之后Creating a label 并不总是可行的,因为并非每个构建都需要由 QA 测试。

      【讨论】:

      • “移动标签”,这到底是什么意思?我的印象是 TFS 中的标签并不构成“时间点”,而是您可以在制作标签后更改标签代码。在这种情况下,我们希望将标签标记为“时间点”……这就是您建议锁定标签的原因吗?
      • @mrlane:“移动标签”:某些 VCS 允许移动标签以引用另一个提交。在 TFS 中,由于可以编辑标签 (stackoverflow.com/questions/545785/…),如果用于 QA,则不应对其进行编辑,否则 QA 不确定它正在测试什么。因此我的“标签锁定”评论,即使你不能真正锁定 TFS 中的标签(仅限文件)
      猜你喜欢
      • 2018-05-21
      • 2011-07-24
      • 2011-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-08
      • 2011-02-04
      • 2010-11-14
      相关资源
      最近更新 更多