PowerShell 和 TFS |使用本地路径与使用服务器路径的 PowerShell ISE 从 TFS 获取更改集列表

Posted

技术标签:

【中文标题】PowerShell 和 TFS |使用本地路径与使用服务器路径的 PowerShell ISE 从 TFS 获取更改集列表【英文标题】:PowerShell and TFS | Getting a list of change sets from TFS with PowerShell ISE using a local path vs using a server path 【发布时间】:2020-06-11 19:14:50 【问题描述】:

我们正在尝试使用 Powershell 为特定分支获取 TFS 中的变更集列表。

工具:PowerShell ISE、TFS Server 2012、Windows 2008 R2 服务器 SP1

对于我们在服务器上的旧 Windows 帐户 - 服务器路径和本地路径代码选项,两者都有效。

对于拥有新 Windows 帐户的用户 - 本地路径不起作用,但服务器路径有效。

我们是否在某处缺少权限?哪一种?

# Enforce coding rules
Set-StrictMode -version 2.0

# Loads Windows PowerShell snap-in if not already loaded
if (
   (Get-PSSnapin -Name Microsoft.TeamFoundation.PowerShell 
       -ErrorAction SilentlyContinue) -eq $null 
)
  
    Add-PSSnapin Microsoft.TeamFoundation.PowerShell -ErrorAction SilentlyContinue
  

$dateRange = "D" + "2020-02-13T15:02:49" + "~D" + "2020-02-20T13:37:47" 

Write-Host "---OPTION 1 (works) using a server path ---"

$TfsServer = "http://**tfs01:8080/tfs/*****"
[Microsoft.TeamFoundation.Client.TfsTeamProjectCollection] $tfs = get-tfsserver $TfsServer 
$results = Get-TfsItemHistory $/SolutionName/Main -Server $tfs 
         -Recurse 
         -Version $dateRange 
         | Sort CreationDate 
         | Select ChangeSetId,OwnerDisplayName,Comment,CreationDate 
         | Select-Object ChangeSetId,CreationDate,OwnerDisplayName,Comment

foreach ($line in $results)

    if (![string]::IsNullOrEmpty($line))        
        
           Write-Host $line
        
 


Write-Host "---OPTION 2 (doesn't work) using a local path ---"

$locationToSearch = "D:\TFS01\LP\SolutionName\Main\Project"
$results = Get-TfsItemHistory $locationToSearch 
         -Recurse 
         -Version $dateRange 
         | Sort CreationDate 
         | Select ChangeSetId,OwnerDisplayName,Comment,CreationDate 
         | Select-Object ChangeSetId,CreationDate,OwnerDisplayName,Comment

foreach ($line in $results)

    if (![string]::IsNullOrEmpty($line))        
        
           Write-Host $line
        
 

【问题讨论】:

【参考方案1】:

应该使用服务器路径来获取变更集。

【讨论】:

以上是关于PowerShell 和 TFS |使用本地路径与使用服务器路径的 PowerShell ISE 从 TFS 获取更改集列表的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PowerShell 在 TFS 中签出文件?

修改TFS与本地源代码映射路径

PowerShell 和 TFS |术语“tfpt”未被识别为 cmdlet 的名称

如何更改 TFS 中子文件夹的本地路径(不是整个工作区)?

TFS在线2017通过PowerShell上传文件

使用 PowerShell 设置 TFS 批准者