代码之家  ›  专栏  ›  技术社区  ›  w4ymo

从PowerShell访问TFS

  •  0
  • w4ymo  · 技术社区  · 16 年前

    我不熟悉PowerShell,我正在尝试从TFS获取分支并使用PowerShell脚本合并它们。不幸的是,我没有通过第一个障碍。

    我在本地计算机上安装了Visual Studio 2010,可以很好地访问TFS服务器(也是2010)。

    我正在本地计算机上运行脚本,并具有以下行:

    $tfs = get-tfs http://TFSServerName:8080/TFSProject
    $branchfolders = $tfs.VCS.GetItems('$/Dev/Branches/', $tfs.RecursionType::OneLevel)
    

    我在上面第二行收到以下错误

    使用“2”参数调用“getitems”时出现异常:“无法连接到远程服务器”

    我已将TFS服务器配置为接受端口8080上的传入连接,该端口工作正常,但现在我不确定如何解决此错误。是否需要进一步配置?

    谢谢你的帮助。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Keith Hill    16 年前

    首先,你可以用tf.exe做你需要的大部分工作, command line tool 你可以使用tf客户机。 tf dir , tf get , tf merge , tf resolve tf checkin 你也可能感兴趣 tf branches . 我们总是从命令行合并,因为只有某些选项可以从命令行中使用,例如tf merge/baseless(有时)和/discard,当我们希望消除作为合并候选的变更集时。我们这样做是因为我们有每晚在维护分支上运行的脚本,这些脚本让我们知道有多少变更集在未合并到主干的情况下已签入。有时有一个变更集永远不应该合并到主干中,例如特定补丁的发行说明。

    Team Foundation Power Tools 但它不如tf.exe那么强大。不过,对于查询来说,这很好,因为您可以返回.NET对象。

    WRT到manning脚本,您是否传入完整的URL,包括tf集合名称,例如 http://myserver.acme.com:8080/tfs/myteamproject ?最后这个 $tfs.RecursionType::OneLevel 似乎不对。不应该是 [Microsoft.TeamFoundation.VersionControl.Client.RecursionType]::OneLevel ?有时,您可以仅将枚举值指定为字符串,例如 'OneLevel' -如果PowerShell.NET方法绑定器可以找到正确的重载。

        2
  •  1
  •   w4ymo    16 年前

    谢谢你的帮助。

    我不明白这为什么会解决这个问题,但是当我使用服务器的IIS地址时,我无法访问它。我相信这对其他人有效,但出于某种原因,不是我。

    例如

    $tfs = get-tfs http://TFSServerName:8080/TFSProject
    

    不起作用,但:

    $tfs = get-tfs TFSServerName/TFSProject
    

    工作。

    推荐文章