【发布时间】:2014-02-05 14:51:51
【问题描述】:
我有本地 TFS2012。我如何检测项目是否有任何更改?我需要这个变量来决定 powershell 脚本:部署包而不是。
【问题讨论】:
我有本地 TFS2012。我如何检测项目是否有任何更改?我需要这个变量来决定 powershell 脚本:部署包而不是。
【问题讨论】:
您可以使用 tf.exe 以编程方式获取项目根目录的历史记录:
tf history . /stopafter:1 /format:brief /noprompt
注意:“.”只是使用映射到 TFS 位置的当前位置,您可能会使用 $/Some/branch/location 而不是“.”
需要解析输出以获取日期字段
Changeset Change User Date Comment
--------- -------------------------- ----------------- ---------- -------------
375564 merge developer (... 8/24/2010 Merge comment
您可以通过运行 tf history /? 获得完整的 tf 历史选项集?
另一种方法是尝试获取最新信息,如果你有任何变化:
tf get . /preview /noprompt /recursive
返回:
Getting somefile.cpp
Getting someotherfile.cs
:
:
【讨论】:
如果您想查看是否有任何特定文件已更改,您可以查看特定文件夹的历史记录并查看更改集的日期。这也可以使用 TFS API 以编程方式完成。
【讨论】:
我正在为更改的项目仅生成 nuget 包,因此我需要找出更改的文件。获得更改的文件后,您可以搜索包含(或者是)那些更改的项目(文件/文件夹)的项目:
。 "$tf" 差异。 /noprompt /format:brief /version:D"$($lastBuildstartTime.ToString())"~W /recursive |? {$_ -like "only" - 或 $_ -like "不同"}
希望有帮助!
【讨论】: