首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Tfs中的TeamProject中创建Git存储库?

如何在Tfs中的TeamProject中创建Git存储库?
EN

Stack Overflow用户
提问于 2019-05-03 23:40:53
回答 1查看 352关注 0票数 0

我正在尝试将TfsServer从旧的基于TFVC的服务器(2013)迁移到较新的版本(2018)。我已经弄清楚了大部分内容,但我就是不能通过编程方式创建很多存储库。

我一直在尝试使用Microsoft.TeamFoundation.ExtendedClient根据名称列表在特定的TeamProject中创建存储库。我已经设法查询了所有已存在的存储库:

代码语言:javascript
复制
public void CreateTeamProjectRepositories(IEnumerable<string> input)
{
      using (var newCollection = new TfsTeamProjectCollection(new Uri(_newUrl)))
      {
           var service = newCollection.GetService<GitRepositoryService>();
      }
}

遗憾的是,这方面的文档相当少,事实上,我能找到的唯一一种官方文档是:

https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2013/dn231953(v%3Dvs.120)

我甚至在扩展客户端中找不到这个类,我唯一能找到的类是我在上面使用的GitRepositoryService,但似乎没有任何关于该类的文档。

我在网上找到了一些描述如何创建TeamProjects的非官方材料,但没有关于TeamProject (像www.url.com:8080/tfs/TeamProjectCollection/TeamProject/_git/RepoName).这样的远程url )中的Repos的内容

有谁有这方面的经验吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-05 16:46:16

我不认为您可以使用旧的TFS类创建Git存储库,但您可以使用新的TFS .Net libraries (在NuGet中提供):

代码语言:javascript
复制
VssConnection connection = new VssConnection(new Uri("http://tfs-server:8080/tfs/{collection}"), new VssCredentials());
GitHttpClient gitClient = connection.GetClient<GitHttpClient>();
GitRepository newRepo = new GitRepository() { Name = "newRepo" };
await gitClient.CreateRepositoryAsync(newRepo, "teamProjectName");

上面的代码在TFS2018上工作,如果你想在TFS2013中创建存储库,我不确定代码是否可以工作,所以你可以使用HttpClient来执行Rest API并创建存储库:

代码语言:javascript
复制
var tfsUrl = "http://tfstest01:8080/tfs/{collection}";
var tfsUri = new Uri(tfsInstance + "/{teamProjectGUID}/_apis/git/repositories/?api-version=1.0");
using (HttpClient client = new HttpClient(new HttpClientHandler() { UseDefaultCredentials = true }))
{
     var data = new { name = "newRepo" };
     var json = JsonConvert.SerializeObject(data);
     var content = new StringContent(json, Encoding.UTF8, "application/json");
     HttpResponseMessage response = null;
     response = client.PostAsync(tfsUri, content).Result;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55973137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档