【问题标题】:Show all changesets between two labels显示两个标签之间的所有变更集
【发布时间】:2016-03-17 17:20:20
【问题描述】:

在 TFS2010 中,每个构建都与构建服务器的标签相关联。

我们的 SCM 管理层希望查看两个标签之间的所有变更集和相关工作项。大多数情况下,这些标签是具有“已发布”构建质量的构建。这样就可以报告两个交付的构建之间的所有更改。

这是如何在 TFS 2010 中完成的?

【问题讨论】:

    标签: tfs


    【解决方案1】:

    我认为您不想使用标签,我认为您想使用构建的日期/时间。标签很容易改变,不一定代表一个时间点。假设您有构建的日期时间,您可以使用TF.EXE 命令行来生成它。

    例如:

    tf.exe history /server:http://tfs:8080 "$/ProjectName/src" /version:D2010-09-12T11:30~D2010-09-29T11:30 /recursive /noprompt /brief
    

    /version: 参数是这里的关键之一。这应该在您的第一次构建时间之后,直到并包括第二次构建的时间。

    如果您使用/format:detailed,您还将获得每个变更集中发生更改的所有文件的列表。这可能是很多数据。如果您这样做,您可能希望重定向输出 > output.txt

    更新

    如前所述,事实上,您可以确定两个标签之间的变化。但是,如果这些标签已移动,您的结果可能会受到影响。

    tf.exe history /server:http://tfs:8080 "$/ProjectName/src" /version:LMain-CI_20100831.6~LMain-CI_20100927.1 /recursive /noprompt /brief
    

    我仍然建议使用日期而不是标签。我相信您从该方法获得的结果可能更符合您的要求。

    更新 2

    我刚刚注意到您使用的是 TFS 2010。您可能必须更改 /server: 参数以指向适当的集合。使用TF.EXE history /? 获取参数列表,但更改为使用/collection:TeamProjectCollectionUrl

    【讨论】:

    • 如果他们很高兴没有任何东西真正改变标签,那么自动生成的构建标签(例如LBuild1234@$/TeamProject)会更明显
    • 问题在于确定“之间”标签的含义。但是,你是对的。我将编辑我的回复。
    【解决方案2】:

    tf history /server:"http://tfsserver:8080/tfs/DefaultCollection" "$/project root/Dir/SubDir" /recursive /noprompt /format:detailed /version:"L1.1.66.0~L1.1.67.0"

    注意版本选项中的 L 前缀。

    【讨论】:

      猜你喜欢
      • 2018-05-26
      • 2021-10-26
      • 1970-01-01
      • 1970-01-01
      • 2022-11-18
      • 2020-05-01
      • 2012-12-12
      • 2015-03-21
      • 1970-01-01
      相关资源
      最近更新 更多