繁体   English   中英

使用Powershell从TFS获取最新版本的文件夹

[英]Get Latest Version of Folder from TFS, using Powershell

我正在尝试使用Powershell从TFS“ 获取最新版本 ”的特定文件夹。

我已经安装了TFS Snappin,并且一直在PowerShell中使用TFS Power Tools cmdlet(例如Get-TfsChildItem和Select-TfsItem等)[ 我如何设置TFS PowerShell Snapin ],并且已经完成了他们的文档(我没有找不到足够的解释!)。

困惑,在我要使用的确切cmdlet上,当我试图从TFS获取整个文件夹结构的最新版本时,映射到我的本地驱动器( 而不仅仅是变更集或ChildItem )。

示例:Tfs路径 - $ / APD-RepairSolutions / Main / Database

映射路径 - D:\\ TFS \\ APD-RepairSolutions / Main / Database。

我想要一个代码,它将迭代地获取整个文件夹数据库的最新版本(具有多个表,存储过程等)

我在用 ..

PS D:\Tfs\APD-RepairSolutions\Main\Database> $server=Get-TfsServer -Name http://tfs:8080/tfs

PS D:\Tfs\APD-RepairSolutions\Main\Database> Get-TfsChangeset -Recurse -Server $Server

没有帮助我的情况 - 因为它只返回当前目录中的最新变更集。

要获得最新( tf get ),请使用Update-TfsWorkspace

Get-TfsChangeset相当于tf changeset

疑难杂症! 使用Update-TFSWorskpace。 还有一些有用的参数。 -Items用于指定要更新的确切项目。

PS D:\Tfs\APD-RepairSolutions\Main>Update-TFSWorkspace -All -Overwrite -Force -Recurse -Items .\Database

工作区将替换为更新版本的项目。 谢谢@Kmoraz!

如果您想使用TFS API,可以使用Workspace.Get方法

# Load the TFS assemblies
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Client")
$ws = $vcServer.QueryWorkspaces("<WORKSPACENAME>", $null, $null);

# Specify properties of intended workspace get
$recursionType = [Microsoft.TeamFoundation.VersionControl.Client.RecursionType]::Full
$latestVersion = [Microsoft.TeamFoundation.VersionControl.Client.VersionSpec]::Latest
$getOptions = [Microsoft.TeamFoundation.VersionControl.Client.GetOptions]::GetAll

# Get what I want!
$ws.Get("$/Remote/Folder", $latestVersion, $recursionType, $getOptions)

查询工作区时,用域登录名和计算机名替换空值是个好主意。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM