2011-11-25 49 views
2

我試圖使用LibGit2Sharp庫resond基本GIT命令,如克隆,並與ASP.MVC推,不知道,應該怎樣設置我的控制器作出相應的反應。GIT在克隆和推送時使用什麼HTTP協議?

不GIT克隆按下時發起HTTP GET和POST請求?並應我的控制器,據我瞭解,你要類似的代碼git的守護的東西被設立類似

[HttpGet] 
public ActionResult Clone(string path) 
{ 
    //Return repo as stream? 
} 

[HttpPost] 
public ActionResult Push(string path) 
{ 
    //Commit to repo 
} 

感謝

+0

看看源,看看什麼是真正完成,但我希望它不應該的問題,還是先看第一個回答這樣一個問題:http://stackoverflow.com/questions/6313155/c-sharp-version -control-dll-api –

回答

2

。 不幸的是,LibGit2Sharp尚未實現與網絡相關的功能。

因此,不可能爲ASP.Net MVC請求push,pull,clonefetch請求。

@synhershko的在LibGit2Sharp跟蹤交易問題與相關主題:Proper pull, fetch, merge support

編輯: 如果您希望從HTTP角度獲取有關Git的傳輸協議,更好的理解,我會熱烈推薦以下資源入手:

然後,恐怕你得深入代碼才能更好地理解它是如何工作的。我的經驗是,從JGit(Java重新實現Git)代碼開始,比直接跳入原始Git C代碼更容易一些。你會發現JGit運輸相關的代碼here

+0

那麼,如果我明白什麼是發送電線,那麼可能MVC可以是網絡接口到LibGit2Sharp。我不明白爲什麼LibGit2Sharp需要處理的所有網絡相關功能都是本地磁盤存儲庫? – Fixer

+0

@Fixer *好,如果我明白什麼是發送線* - >我已經更新了我的答案與一些鏈接到網絡協議相關的文檔和代碼。 *我不明白爲什麼LibGit2Sharp需要與網絡相關的功能* - > LibGit2Sharp是綁定在libgit2之上的。而且libgit2的範圍超出了本地存儲庫;-) – nulltoken

+0

感謝您的額外信息,應該是有用的。對於缺乏信息抱歉,我的應用程序僅使用LibGit2進行本地回購。而MVC應用程序將成爲進出其他回購站的界面。 – Fixer

相關問題