【发布时间】: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