libgit2sharp:如何使用相同的键设置多个值

时间:2013-12-13 14:38:25

标签: libgit2sharp

如何为config-key设置多个值?某些部分支持多个值:

[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 );   

1 个答案:

答案 0 :(得分:2)

  

如何为配置键设置多个值

这确实是LibGit2Sharp中当前缺少的功能。刚刚打开 issue 来跟踪此事。

但是,如果你正在设置/更新遥控器的默认refspecs,那么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);
    }
  • 或多或少相关,请求 #553 引入了一种简单的方法来枚举远程的所有refspec