我在TFS 2008中设置了CI流程,这样每次签入都会触发构建,但只有在构建尚未运行时才会触发。配置中使用的确切设置是标有:
的单选按钮“累积签到,直到之前的构建完成(更少的构建)” 复选框“构建不超过每___分钟”。未选中
我还有其他可能正在进行的构建过程,因此我可以看到构建版本与特定的“Date Queued”排队。当构建服务器到达排队的构建时,让我们说它需要10分钟到达那里,它是否使用排队构建的时间戳来进行获取或构建是否“获取最新”?
答案 0 :(得分:0)
我相信TFS将使用最后一次触发提交的变更集(即,构建按变更集ID执行'获取特定版本',而不是'获取最新')。
您可以通过查看构建报告并查找“源代码管理版本”字段的值来检查这一点,您应该会看到与此类似的内容:
TFS Build Report Fragment, Source control version field http://i47.tinypic.com/a3ihhs.png
首先,我会检查您看到的值是否与您在构建工作区中看到的值一致,并且构建引用了预期的变更集。
假设您的构建正如宣传的那样工作(这对您来说是个问题),那么您可能需要考虑更改此默认行为并强制您的CI构建通过覆盖“GetVersion”MSBuild属性来“获取最新”在构建的TFSBuild.rsp文件中,添加以下内容:
/p:GetVersion=T
其中'T'代表'tip'(或SVN用语中的'head')。