2010-11-18 26 views
10

私はGitを使って一連のバイナリファイルをバージョンアップしています。彼らはかなりうまく圧縮されますが、私の中央リポジトリは、私がそれらを押すと圧縮されていないようです。彼らは私のクォータのまともな量を食べているので、私はリモートリポジトリにGCを強制する方法があるかどうかを調べるために探していました。GitでリモートRepo Compress(GC)を強制する

これは可能ですか?私はProject Lockerに取り組んでいるので、私はSSHにアクセスしてGCにレポを入れているとは思わない。何か案は?ありがとう。 git-gcman page

+0

リモートのgitconfigにアクセスできますか? – Cascabel

答えて

8

自分でgit gcを実行できない場合は、自動的に実行する必要があります。あなたはそれを完全にコントロールすることはできませんが、少なくともそれを実行できるはずです。

git gc --autoはいくつかのコマンドで実行されます。関連するものはここでは受信パックであり、これはプッシュの一部としてパックを受け取るためにリモートで実行されます。 gc --auto十分なゆるいオブジェクトがある場合は、再パックするだけです。カットオフはconfigパラメータgc.autoによって決定され、デフォルトは6700です。

リモートのgitconfigにアクセスできる場合は、そのカットオフを一時的に1に設定できます。レポに少なくとも1つのゆるいオブジェクトがあるはずです。そのため、次回にプッシュするときにgc --autoがそのことを行う必要があります。

リモートのgitconfigにアクセスできない場合は、人工的にたくさんの緩いオブジェクトを作成すると思ってもいいと思います。ブランチを作成し、そのブランチをリモートにプッシュした後、リモートからブランチを削除することで、ブランチを作成することができます。 (内容を変えることが重要です。同じブロブを使用するだけです)リンスして繰り返します。

+0

私は、7000程度のテキストファイルをポンピングする小さなアプリを作ってみるかもしれません。私は設定にアクセスできるとは思わない。私はそれがどのように行くのか、あなたに教えてくれます、ありがとう! – jocull

+2

@jocull: 'seq 1 7000 |読んでいる間n; echo $ n> $ n.txt' – Cascabel

+0

これはシェルスクリプトですか?とにかく、私はQtで本当に素早く何かを作って、すべてのゆるいオブジェクトを押し上げました。私のスペース使用量に違いはないようです。私はProjectLockerに連絡して何が起きているのかを見てみる必要があります。誰もが助けてくれてありがとう。 – jocull

1

フォーム:

いくつかのgitコマンドは自動的にgit GCを実行することができます。詳細については、以下の--autoフラグを参照してください。

、さらに:

--auto

このオプションを使用すると、任意のハウスキーピングが必要かどうかのgit gcをチェック。もしそうでなければ、それは何の仕事もせずに終了する。いくつかのgitコマンドは、多くの緩いオブジェクトを作成する操作を実行した後にgit gc --autoを実行します。

リポジトリに余分なオブジェクトが多すぎたり、パックが多すぎる場合は、ハウスキーピングが必要です。緩いオブジェクトの数がgc.auto構成変数の値を超える場合、git repack -d -lを使用してすべての緩いオブジェクトが1つのパックに結合されます。 gc.autoの値を0に設定すると、緩いオブジェクトの自動パッキングが無効になります。

パックの数がgc.autopacklimitの値を超えた場合、既存のパック(.keepファイルでマークされているものを除く)は、git repackの-Aオプションを使用して1つのパックに統合されます。 gc.autopacklimitを0に設定すると、パックの自動整理が無効になります。

、最後に:

のgit gcを--autoコマンドは前自動GCフックを実行します。詳細は、githooks(5)を参照してください。

2

これは実際に彼らが最後に解決する必要がある問題です。彼らはポスト受信フックやcronの仕事や同様のものでそれを行うことができますが、あなたのリポジトリを維持することになっている場合、それはさまざまな理由でその一部です。

+1

私は同意しがちですが、時には他の人が問題を解決するのを待つこともできません。 'gc'をまともに動かすこともできるかもしれませんが、バイナリファイルはテキストコンテンツを使って通常より速く膨らみを起こしています。 – Cascabel

+0

もし彼らがGCをしなければ、彼らは私にもっと多くのスペースを売る。彼らはビジネスPOVからではなく、ほとんどの人にとって理にかなっています。 – jocull

関連する問題