【问题标题】:Get Latest Version of Folder from TFS, using Powershell使用 Powershell 从 TFS 获取最新版本的文件夹
【发布时间】:2017-01-04 09:56:35
【问题描述】:

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

我已经安装了 TFS Snappin,并且一直在 PowerShell 中使用 TFS Power Tools cmdlet(例如 Get-TfsChildItem 和 Select-TfsItem 等)[How do I set up TFS PowerShell Snapin],并浏览了他们的文档(我没有找到足够的解释!)。

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

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

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

我想要一个代码,它可以迭代地获取整个文件夹 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

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

【问题讨论】:

  • 您尝试过 TFS Power Tools cmdlet 吗?

标签: powershell tfs powershell-2.0 tfs-power-tools


【解决方案1】:

要获取最新信息 (tf get),请使用 Update-TfsWorkspace

Get-TfsChangeset 等同于tf changeset

【讨论】:

    【解决方案2】:

    明白了!使用更新-TFSWorskspace。也有一些有用的参数。 -Items 用于指定要更新的确切项目。

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

    工作区被更新版本的项目所取代。谢谢@Kmoraz!

    【讨论】:

    • 我只想说开关是 -Item 而不是 -Items
    【解决方案3】:

    如果您想改用 TFS API,可以使用Workspace.Get Method

    # 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)
    

    Querying Workspaces 时,最好用您的域登录名和计算机名替换空值。

    【讨论】:

    • 这太棒了!作为参考,将 GetOptions 更改为 Overwrite 似乎与 Visual Studio 中的“获取最新版本”相匹配: .....GetOptions]::Overwrite
    猜你喜欢
    • 1970-01-01
    • 2014-02-13
    • 2017-03-31
    • 2011-11-04
    • 2016-09-08
    • 2017-02-26
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    相关资源
    最近更新 更多