TFS以编程方式获取最新标签

时间:2016-02-16 18:42:32

标签: powershell tfs

我正在使用powershell创建一个电子邮件实用程序来跟踪自上一版本以来发生的变更集。

我正在尝试搜索为指定工作区创建的最后一个标签与最新变更集

之间的变更集

我正在使用代码

检索最新的变更集
fgg<-function(a,params){
  5*params[1]+5*params[2]^2-a
}
result<-optim(params= c(1, 1),fgg, a=1)

我尝试过使用$latestChangeset = Get-TfsItemHistory -HistoryItem $workSpacePath -Recurse -Server $tfs -Stopafter 1 命令行命令,但我找不到任何方法让它只返回特定工作区的最新构建标签

2 个答案:

答案 0 :(得分:1)

您可以在PowerShell中使用TFS API来获取最新标签。

$CollectionUrl = "http://xxx.xxx.xxx.xxx:8080/tfs/defaultcollection"
$tfs = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($CollectionUrl)
$vcs = $tfs.GetService([Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer])
$labels = $vcs.QueryLabels('*','$/ProjectName',$null,$true)
$lastlabel = $labels | Select-Object -last 1
write-host $lastlabel.Name
write-host $lastlabel.LabelID

答案 1 :(得分:0)

这可能是因为TFS中的标签与之前的源代码存储库(如VSS)不同。请查看此answer中链接的博客。

引用博文:

  

SourceSafe中的标签始终是“时间点”标签。您通常会在某个时间点标记某个树,并在同一时间点隐含树的所有内容的标签。

  

在Team Foundation中,标签更强大。他们可以从不同的时间点获得标签中每个文件的版本,而不是单个时间点。

因此,将标签与变更集联系起来会有问题。