2

如何为配置键设置多个值?某些部分支持多个值:

[remote "origin"]
   url = git@github.com:schacon/simplegit-progit.git
   fetch = +refs/heads/master:refs/remotes/origin/master
   fetch = +refs/heads/qa/*:refs/remotes/origin/qa/*

像这样的东西在 gitLib2Sharp 中不起作用:

string[] refSpecs = {"+refs/heads/master:refs/remotes/origin/master", "+refs/heads/qa/*:refs/remotes/origin/qa/*"};
repo.Config.Set( @"remote.origin.fetch", refSpec );   
4

1 回答 1

2

如何为配置键设置多个值

这确实是 LibGit2Sharp 中当前缺少的功能。刚刚打开了一个问题来跟踪此问题。

但是,如果您要设置/更新遥控器的默认 refspec,则该repo.Network.Remotes.Update()方法可能已经满足该需求,而无需等待问题得到解决。

  • 拉取请求#567最近增强了该Remotes.Update()方法以使其应对 refspecs 更新。因此,您的示例可以使用以下代码来实现。
    var fetchSpecs = new string[]
    {
        "+refs/heads/master:refs/remotes/origin/master",
        "+refs/heads/qa/*:refs/remotes/origin/qa/*"
    };

    using (var repo = new Repository(path))
    {
        var remote = repo.Network.Remotes["origin"];
        repo.Network.Remotes.Update(remote, r => r.FetchRefSpecs = fetchSpecs);
    }
  • 或多或少相关,pull request #553引入了一种简单的方法来枚举远程的所有 refspec
于 2013-12-13T19:52:25.250 回答