2011-11-25 81 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