我关注过这个
solution
解决方案如下
$files=$(git diff HEAD HEAD~ --name-only)
echo $files
$temp=$files -split ' '
$count=$temp.Length
echo "Total changed $count files"
New-Item -ItemType directory -Path $(Build.ArtifactStagingDirectory)\files
For ($i=0; $i -lt $temp.Length; $i++)
{
$name=$temp[$i]
echo "this is $name file"
if (Test-Path "$(Build.SourcesDirectory)\$name")
{
Copy-Item $(Build.SourcesDirectory)\$name $(Build.ArtifactStagingDirectory)\files
}
}
有了这个,我可以从上一次提交中获得修改过的文件,但是在我的例子中,可能有N个新的提交。
2项承诺
$files=$(git diff HEAD HEAD~2 --name-only)
$files=$(git diff HEAD HEAD~3 --name-only)
就像这样。,
但是,我无法找到一种方法来获取生成定义中新提交的数量
更新1
我的TFS
Get Sources
总是用最新的提交id签出相应的分支
2018-09-08T06:05:35.8623084Z ##[command]git checkout --progress --force e88c5a4bf29a539c515ca0e5fea104799426026e
2018-09-08T06:05:36.3681977Z Previous HEAD position was 40ac471... Updated xxxxxxx