2011-05-10 17 views
5

私の会社はGitの実装を検討していますが、私はそれを設定するのが最善の方法について質問しています。私たちには3つのサイトがあり、Gerrit2を使ってミラーを作成する予定です。私たちのリポジトリは約2GBで、バイナリを追加したいと考えています。私は空間の使用について心配しています。バイナリのすべてのバージョンが少数の場所に格納されていても問題はありませんが、クローン操作を駄目にしないようにしたいと思います。バイナリを使ったGitリポジトリ設定

私はGitがハードリンクを使用していることを理解していますが、すべてのマウントにリポジトリのコピーを置いた場合にのみ動作すると思います。より良い選択肢がありますか?その場合、トレードオフは何ですか?私が見ているオプションは "--shared"と "--reference"です。

答えて

3

ネイティブgitを使うには、独立したリポジトリを使ってgitサブモジュールを介してバイナリを格納してください。これは、巨大な.wavファイルを持っていたIVRシステムで私の仕事をしてくれました。さらに詳しい説明が必要な場合は、私に連絡してください。

ここで良いの書き込みは、それらの上にアップします:

http://progit.org/book/ch6-6.html

希望は、これはさらに別の可能性がgit-fat(またはいくつかの機能強化とのgit-脂肪のシアンのfork)である

+0

サブモジュールは面白そうですが、部分チェックアウトとはどのように相互作用しますか?サブモジュールの一部しかチェックアウトしないように指定することはできますか?それとも、全体をチェックアウトする必要がありますか? – dromodel

+0

は、必要なファイルを持つサブモジュールレポ内の特別なブランチで処理することができます。 –

3

大きなバイナリにはgit-mediaを使用してください。 SHA1は、選択した場所(およびプロトコル)でバイナリ自体を合計してホストするため、バイナリへの参照を格納します。クローンを作成するときには、作業コピーをチェックアウトするのに必要なバイナリのみを取り出します。 Marceloによって

+0

Gerrit2はすべてのサイトとの同期を複雑にする可能性があります。部分チェックアウトのサポートも欠落しているようですが、以下のコメントに記載されています。興味深いオプションだけど。 – dromodel

6

git mediamentionedの別の代替は、git annexある:

what git-annex is not参照:どちらも同様の方向から同じ問題にアプローチが

のgit - 附属書は、Gitのメディアではありません。私はgit-annexを書いた後でgit-mediaについて学んだだけですが、git-annexを使っているのではないでしょうか。

現在のところ、git-mediaは、git-annexのシンボリックリンクよりもむしろgit smudgeフィルタを使用する利点があり、状況によってはより厳密に適合する可能性があります。
これは、単一のバックエンドデータストアのみを使用して、広く分散されたストレージに対するgit-annexのサポートを欠いています。
git-annexのように、ファイルの内容の部分チェックアウトもサポートしていません。


注:abdelsaidin the comments追加:あなたは、(あなたはバージョンを持つことができますBUP)bupでのgit - 附属書を使用しgit-annex/ special remotes/ bup(およびUsing bup

私が持って見ることができます

詳細は「git with large files

+0

バイナリの複数のリビジョンを保持することを許可していないように見えます。 – dromodel

+0

これは古いコメントですが、誰かがここに来るのであれば、bupとgit-annexを使うことができます(bupにはバージョンがあります)。https://git-annex.branchable.com/special_remotes/bup/ – vimdude

+0

@ abdelsaid良い更新。私はより多くの可視性のための答えにあなたのコメントを含めて、私は私がbupについて話した私の別の答えへのリンクを追加しました。 – VonC

2

に役立ちます。それはgit-media(Ruby)より軽量で(Pythonとrsyncのみに依存します)、確かにgit-annex(Haskell)より軽いです。そのコストは設定可能性が低くなりますが、場合によってはこれが最善の解決策である可能性があります。

関連する問題