2017-05-11 35 views
0

私の同僚とのLAN上のWindows共有フォルダとして、大きなgitリポジトリ(3GB以上、.gitフォルダ~1.1GB)を共有する必要があります。クローンが開始するまでに30分ほど待ってからプッシュ/プルが始まる5分前に停止していました。LAN経由でGitリポジトリを共有する最も簡単な方法

レポを共有するためのレイテンシや改善方法を知っている人はいますか?

P.S.複雑すぎるのでGitlabをセットアップしたくないです。

+0

通常のWindowsエクスプローラを使用するだけで、ネットワーク上の相当量のデータをコピーするにはどのくらいの時間がかかりますか? –

+0

プッシュ/プッシュが実際に開始する前に、すべてのプル/プッシュが待機するのに時間がかかりすぎるということがあります。 – Vej

+0

LANは非常に安定しています。大容量ファイルのコピーは最大30MB /秒です。レポには小さすぎるファイルが含まれているため、ファイルとしてコピーするには時間がかかります。 – Vej

答えて

1

gitリポジトリが非常に大きいので、を共有しているgit repoまたはコミットの一部を同僚にバンドルすることができます。

バンドル全体レポ:git bundle create repo.bundle branchname

バンドルいくつかのコミット:git bundle create repo.bundle --all

分岐バンドル彼の地元のレポにバンドルされたコミットを適用するために1 git bundle create commits.bundle branchname ^commit

を、彼は、バンドルを確認することができますファイル:git bundle verify /path/to/bundle/file

詳細は、Git's Little Bundle of Joygit bundleを参照してください。

+0

ありがとう! 'git bundle'はコミットを共有するようなものですが、パック/アンパックするには余分なコマンドが必要です。私は 'git daemon'のようなメソッドを使いたいと思います。 – Vej

+0

'git bundle'では、最初にリポジトリ全体をアンパックする必要があります。その後、新しいコミットをバンドル/アンバンドルするだけです。また、 'git daemon'も良い選択です。毎回バンドル/アンバンドルしたくない場合は、 'git daemon'のやり方に従うことができます。 –

+0

ありがとう!私の同僚がこのレポを書くことを可能にする 'git daemon'の' receive-pack'オプションが見つかりました。クール! – Vej

1

git daemonこの状況では本当にうまくいきます。そのパフォーマンスは良いですが、Windows Server上のセキュリティに欠けています。サーバー側では

、次のコマンドを実行します。クライアント側で

cd ~/Documents/All-My-Git-Repos/ 
git daemon --verbose --reuseaddr --export-all --enable=receive-pack --base-path=. 

を、このような任意のレポのクローンを作成:

git clone git://my-git-server-address/repo-folder-name repo-clone-name 

Windowsサーバ上でこれを使用している間、ファイアウォールは権限のためのプロンプトが表示されますポート9418で許可する必要があります。

+0

ありがとうございます – solarc

関連する問題