我正在使用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
命令行命令,但我找不到任何方法让它只返回特定工作区的最新构建标签
答案 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中,标签更强大。他们可以从不同的时间点获得标签中每个文件的版本,而不是单个时间点。
因此,将标签与变更集联系起来会有问题。