我正在尝试使用TF命令执行条件签入(如下所示),
tf checkin /force /comment:"Some comment" /noprompt /override:"Check-in"
然而问题是当我的文件没有改变时,上面的命令抛出错误(有意义!)。所以我希望使用 folderdiff 命令运行某种条件检查,并在尝试登记之前解析输出。
tf folderdiff $/project/code d:/mycode /recursive /noprompt
此命令会抛出类似下面的内容,
问题是 - 我如何动态解析(检查是否有任何文件)并转入办理登机手续?
答案 0 :(得分:0)
“命令提示符”窗口中显示的输出列出了所有文件 在以下五个部分的文件夹中:
- 仅存在于服务器文件夹中的项目。
- 仅存在于本地文件夹中的项目。
- 内容不同的项目。
- 具有相同内容的项目(必须使用/ view选项指定相同的参数)。
- 概要
如果文件之间存在差异,您可以在Show Items That Have Different Contents
部分看到它。
您的示例"摘要:2个文件夹,19个文件,0个源,0个目标,0个不同,0个有错误"表示服务器和本地文件夹之间没有区别。
答案 1 :(得分:0)
解决方法如下。
首先,我使用了标准的 folderdiff 命令,并将输出重定向到单独的文本文件。
然后我创建了一个powershell脚本,然后在文本文件中查找模式并且(如果找到模式)然后设置一个标志(在TFS中定义一个名为MyVar的自定义变量),
$data= (Get-Content -Path $someFilePath | where-Object {$_ -like '*Your string pattern....*'})
if (([string]::IsNullOrEmpty($data)))
{
Write-Host "##vso[task.setvariable variable=MyVar]True"
Write-Verbose "No files modified, so no check-in."
}
最后,使用此变量(MyVar)创建运行TF checkin命令的条件步骤。