gpt4 book ai didi

tfs - 如何在 TFS 2015 中删除 Git 存储库?

转载 作者:行者123 更新时间:2023-12-04 01:44:04 26 4
gpt4 key购买 nike

我正在尝试删除 TFS 2015 Update 1 中的 Git 存储库。该存储库是使用新的 Git and TFVC in the same project 在现有的 TFVC 团队项目中创建的。特征。但是,我可以使用 TFS 门户轻松创建 Git 存储库(使用“代码”选项卡),我在 TFS 门户中找不到任何功能或基于命令行的功能来删除 Git 存储库。此外,当我浏览“管理存储库...”时,我找不到名为“删除存储库”的功能。

我没有运气在谷歌上搜索和搜索 MSDN 页面。

所以我不想删除整个团队项目(因为它包含很多源代码、工作项和历史记录),而只想删除一个空的 Git 存储库。

有人有建议吗?

编辑 #1
在管理页面中应该显示“删除存储库”选项的子菜单,当只有一个 Git 存储库保留在特定团队项目中时,似乎没有启用(请参见屏幕截图)。记录:当存在两个或多个 Git 存储库时,它是可见的。

enter image description here

最佳答案

当一个项目中有多个 git repos 时,实际上很简单:

  • 选择代码选项卡。
  • 单击显示您的存储库的下拉列表。
  • 选择管理存储库。
  • 单击要删除的存储库旁边的上下文下拉列表。
  • 选择删除存储库。

  • enter image description here

    enter image description here

    编辑(基于您的编辑):

    TFS 2015(更新 1)确实为 TFS 团队项目中包含的 Git 存储库数量设置了明确的最小限制。

    TFS REST api 包含可一起用于删除 git 存储库的函数,但它不会删除 TFS 项目中的“最后一个”存储库。

    Here is the general API documentation

    删除 git repo 涉及的两个函数是:
  • 获取仓库列表

    (GET VERB) https://{instance}/defaultcollection/[{project}]/_apis/git/repositories?api-version={version}

  • 当给定项目名称时,将返回包含 git 存储库列表及其存储库 ID 的 json。
  • 删除仓库 当给定一个 repo ID 时,它将删除指定的 repo。

    (删除动词) https://{instance}/defaultcollection/_apis/git/repositories/{repository}?api-version={version}

  • 不幸的是,在调用 delete repo 函数时有一个问题:

    {
    "$id": "1"
    "innerException": null
    "message": "There must always be at least one repository per Team Project."
    "typeName": "Microsoft.TeamFoundation.Git.Server.GitRepositoryMinimumPerProjectThresholdExceededException, Microsoft.TeamFoundation.Git.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
    "typeKey": "GitRepositoryMinimumPerProjectThresholdExceededException"
    "errorCode": 0
    "eventId": 3000
    }

    Exception documentation on MSDN

    在我拥有的实验室实例上查看 SQL 服务器(在我看来,如果在生产环境中滥用,则不受支持)

    TFS 数据库包含一个存储过程,它删除名为 prc_DeleteGitRepositories 的 git 存储库,它需要 4 个参数,我在数据库中或在 web-ui 上按 F12 查找这些参数。

    它的调用方式如下:
    EXEC prc_DeleteGitRepositories @partitionId=1, 
    @teamProjectUri ='vstfs:///Classification/TestProject1/cbcc3093-247d-448a-8c3b-f5d447fc8afa',
    @repositoryId='4111286D-D066-4F3D-89B9-960055D678FE',
    @deleterId='769254d3-1f13-431c-a580-1500dcbffbce'

    但是,在指定项目中仅存在 1 个 git repo 的情况下会引发以下情况:

    Msg 50000, Level 16, State 1, Procedure prc_DeleteGitRepositories, Line 65
    %error="1200013";%:<SERVERNAME>.TestCollection.dbo.prc_DeleteGitRepositories: There must always be at least one repository per Team Project.

    所以总结一下:最适合 uservoice 的潜在功能请求正如我们对此 Q/A 的评论中所讨论的那样。

    关于tfs - 如何在 TFS 2015 中删除 Git 存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35794126/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com