9

(2)サーバー間でGitリポジトリを自動的に同期して、3番目のポイントから交換できるようにする方法を探しています。

状況は次のとおりです。すべてのプロジェクトで git を頻繁に使用しており、一部のリポジトリのサイズが非常に急速に大きくなっています。現在、中央サーバーが 1 つあり、全員がこのサーバーにプッシュ/プルしています。ただし、これはすべてインターネット接続を経由するため、最速の方法ではありません。

アイデア: オフィスに別のサーバーを配置し、すべての git リポジトリをオフィス内で使用できるようにします。このサーバーは、オンラインのサーバーと同期する必要があります。せいぜいユーザーは、何らかの dns 調整を介してどちらを使用しているのかさえわからないため、オンライン サーバー リポジトリのアドレスは、ネットワークに接続されたときにオフィス内のものに解決されます。

すでに似たようなことをしている人はいますか?または、目標を達成するためのより簡単な方法はありますか。

4

2 に答える 2

4

このようなメカニズムは、 SSH プロトコルを使用して簡単に実行できることがわかります( gitoliteのようなフレームワークが LAN リポジトリと WAN http リポジトリの両方に配置されていることを意味します) 。

  • まず、2 つのレポが同期しているかどうかを確認します
  • ローカルリポジトリがリモートリポジトリよりも最新でない場合、コマンドを拒否します
  • ローカルリポジトリを必要なリモートリポジトリと同期します

フックでこれを行うのはより複雑であり、その同期メカニズムを常に維持するために、サーバー側のフックの種類ごとに慎重にセットアップする必要があります。

于 2010-11-26T12:43:31.663 に答える
0

Gitoliteには、リポジトリをミラーリングする機能があります。オフィスにあるものをマスターとして、オンラインのものをスレーブとして設定し、どちらかにプッシュできるようにすることができます。

于 2012-06-15T14:37:38.020 に答える