我正在尝试使用LibGit2Sharp库来处理基本的GIT命令,例如使用ASP.MVC进行克隆和推送,并且不确定我应该如何设置我的控制器以进行相应的响应。
克隆推送时,GIT是否会启动HTTP GET和POST请求?我的控制器应该设置为
[HttpGet]
public ActionResult Clone(string path)
{
//Return repo as stream?
}
[HttpPost]
public ActionResult Push(string path)
{
//Commit to repo
}
由于
答案 0 :(得分:2)
据我所知,您正在尝试编写与git-daemon类似的代码。 遗憾的是,LibGit2Sharp尚未实现与网络相关的功能。
因此,无法提供来自ASP.Net MVC的push
,pull
,clone
或fetch
请求。
@synhershko问题涉及相关主题: Proper pull, fetch, merge support
修改强> 如果您希望从HTTP角度更好地了解Git传输协议,我会热烈推荐以下资源:
然后,我担心你必须深入研究代码,以便更好地掌握它的“工作原理”。我的经验是,从JGit(Java重新实现Git)代码开始,比直接深入了解原始的Git C代码要容易一些。您将找到与JGit传输相关的代码 here 。