1

私はコンテンツ リポジトリ サーバー ソフトウェアを持っています。クライアントは、お気に入りのプロトコル (FTP/WebDAV/CIFS/...) を使用してファイルを一覧表示/読み取り/編集できます。

Git インターフェースの実装が理にかなっているのかどうか疑問に思っています (私は Git プロトコルのサーバー側を実装し、Git クライアントはそれに接続します)。

質問: Git プロトコルを実装するサーバー側のソフトウェアはありますか? ( Torvalds によって開発された Git サーバーを除く) ?

4

1 に答える 1

2

ほとんどの場合、自分で git サーバーを実装したくはありません。Git の設計は lib 化に適していないため、git のファーストクラスのライブラリ バージョンが利用できないという問題が進行中です。

それにもかかわらず、必要に応じていくつかのオプションがあります。

  1. libgit2、真の C git ライブラリに関する最新の作業、および他の言語へのさまざまなバインディング
  2. GitPython、および git 実行可能ファイル自体をラップする Python およびその他の言語用の同様のライブラリ
  3. jgit、git のネイティブ Java 実装

コンテンツに透明な git のようなインターフェイスを提供したい場合は、それが何を意味し、何を提供したいかを慎重に検討する必要があります。Git は DVCS であるため、すべての履歴が保持されます。つまり、人々がリポジトリで何か役に立つことをするためには、履歴全体を保持して提供する必要があります。そのため、一度だけ表示するためにデータをエクスポートしようとしているだけでは、あまり意味がありません。このアプローチは、すべてのバックエンド データを git のバージョン管理下に実際に保存している場合にのみ、最も意味があると思います。

最後に、「git サーバー」自体は存在しないことに注意してください。Git は、データを送受信するために単純な git コマンドを送信できる ssh、http などの既存のトランスポートを利用します。

于 2012-05-02T02:53:17.517 に答える