使用PowerShell销毁标记为在TFS中删除的源代码,这可能吗?

时间:2018-12-13 02:48:09

标签: rest powershell tfs

Example

如果查看图片,我已在VS2017源代码管理资源管理器中将一些示例文件/源代码标记为已删除,但是TFS不会自动将其删除,您必须使用tf destroy命令手动将其删除。

我想让PowerShell使用TFS REST API来获取已标记为删除的源,但是通过他们的API参考,我没有找到一种方法来执行此操作,该API似乎没有暴露这类信息,但是Visual Studio 2017能够以某种方式获取它,那么我当然应该能够?

我正在使用TFS2017 Update 2,所以这是api版本3.2。

为什么要这样做:我们的空间不足,并且我们有很多团队项目集合,其中的源标记为删除。手动销毁所有东西将非常繁琐。

2 个答案:

答案 0 :(得分:0)

没有用于此的REST API。您将必须使用tf.exe

答案 1 :(得分:0)

如果您拥有TFS电动工具,则可以使用此PowerShell脚本来销毁所有已删除的项目(使用tf而不是rest api,但是它可以完成工作,您无需手动进行) :

$tfsServer = Get-TfsServer -name http://YOURTFSSERVER:PORT    
$destroyList = get-tfschilditem -item $/Root/ -server $tfsServer -Deleted -recurse | Where {$_.DeletionId -ne 0} 
foreach($item in $destroyList)
{
    $itemPath = '"' + $item.ServerItem + ";X" + $item.DeletionId + '"'
    tf destroy $itemPath /i /startcleanup
}