TFS 2015导出收集所有项目源代码

问题描述 投票:0回答:1

我需要一些有关如何一次克隆(git)TFS 2015(更新3)集合中所有项目的帮助。我在下面找到了该Powershell脚本的较新版本,并尝试将API版本从4.0更改为2.0,但随后出现错误“方法调用失败,因为[System.Management.Automation.PSCustomObject]不包含名为' ForEach'。“

无法在TFS 2015 API中找到如何进行此克隆的示例或执行任何其他方法的麻烦。

$collection = "http://myserver:8080/tfs/DefaultCollection"

$projectsUrl = "$collection/_apis/projects?api-version=4.0"
$projects = Invoke-RestMethod -Uri $projectsUrl -Method Get -UseDefaultCredentials -ContentType application/json

$projects.value.ForEach({

  $reposUrl = "$collectionurl/$($_.name)/_apis/git/repositories?api-version=4.0"
  $repos = Invoke-RestMethod -Uri $reposUrl -Method Get -UseDefaultCredentials -ContentType application/json
  $repos.value.ForEach({
    git clone $_.remoteUrl --branch master --single-branch

  })
})
git tfs tfs-2015 azure-devops-rest-api
1个回答
0
投票
创建此顶层的步骤也很简单(尽管您必须通过添加每个仓库来设置一次):

创建新的仓库

克隆它:git clone <url>(和该回购中的CD)

    [开始添加您的存储库:git submodule add <project repo url>。对所有存储库重复此操作。
  1. 提交并推送。
  • 现在要克隆很多您可以在一行中完成:
  • git clone <url> --recurse-submodules
  • 或分两步(git提供了很大的灵活性):

    • git clone <url>
    • git submodule update --init --recursive

      就是这样。您的顶级存储库甚至可能是您的顶级MSVS(或其他)文件夹。整个回购管理是因为它简单易用,因为它只不过是git命令而已-无需弄乱不同版本的Power Shell,bash,dos或类似的东西。您可以使用配置管理工具来完成配置管理:)
    • 但是,正如我说的那样,这不能直接回答您的问题,它是一种替代方法,它绕过了TFS(在我看来,它不如直接使用git逊色。]
    © www.soinside.com 2019 - 2024. All rights reserved.