クローンとプッシュの際にGITはどのようなHTTPプロトコルを使用しますか?

私はLibGit2Sharpライブラリを使用して、クローンやASP.MVCでのプッシュなどの基本的なGITコマンドを再利用しようとしていますが、それに応じてコントローラを設定する必要があります。

プッシュをクローン作成するときにGITはHTTP GETとPOSTリクエストを開始しますか?そして、私のコントローラーを

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

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

ありがとう

2
ソースを見て、実際に何が行われているかを確認してください。問題ではないはずですが、この質問の最初の答えを見てください。 stackoverflow.com/questions/6313155/…
追加された 著者 James Black,

1 答え

私が理解しているところから、あなたはgit-daemonに似た何かをコーディングしようとしています。 残念ながら、LibGit2Sharpはまだネットワーク関連の機能を実装していません。

したがって、ASP.Net MVCから push pull clone 、または Fetch リクエストを提供することはできません。

@synhershko 's issue in LibGit2Sharp tracker deals with a related subject: Proper pull, fetch, merge support

EDIT: If you wish to get a better understanding about Git transfer protocols from an HTTP perspective, I'd warmly recommend the following resources to start with:

次に、コードがどのように機能するのかをよりよく把握するために、コードを掘り下げなければならないのではないかと心配しています。私の経験では、Jit(JavaのGit再実装)コードは、元々のGit Cコードへの直接的な潜入よりも少し簡単です。 JGitトランスポート関連のコードは ここ

2
追加された
さて、もし私がワイヤーで送られてくるものが分かっていれば、おそらくMVCはLibGit2Sharpへのネットワークインターフェースになるかもしれません。 LibGit2Sharpに対処する必要があるときにローカルのディスクリポジトリが必要なときにLibGit2Sharpにネットワーク関連の機能が必要な理由は分かりません。
追加された 著者 Fixer,
余分な情報をありがとう、有用でなければなりません。ええ、情報の不足のため申し訳ありません、私のアプリはローカルリポジトリのLibGit2を使用しています。そして、MVCアプリは、他のリポジトリとのインターフェイスです。
追加された 著者 Fixer,
@Fixer ネットワークに送信される内容が分かっている場合 - >ネットワークプロトコルに関連するドキュメントやコードへのリンクを使って回答を更新しました。 LibGit2Sharpにネットワーク関連の機能が必要な理由がわかりません - > LibGit2Sharpはlibgit2の上にあるバインディングです。 libgit2の範囲はローカルリポジトリを超えています;-)
追加された 著者 nulltoken,