2013-12-13 60 views
2

如何爲配置密鑰設置多個值?部分路段支持多個值:libgit2sharp:如何使用相同的密鑰設置多個值

[remote "origin"] 
    url = [email protected]: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); 

回答

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引入一種簡單的方法來枚舉的遠程
所有refspecs
相關問題