2017-01-24 8 views
1

大きなファイルまたはバイナリファイルがコミットによってリポジトリに追加されないように、サーバ側の事前受信フックを記述できますか?リポジトリ内の不要なファイルを防ぐためにgit lfs pre-receiveフックを使用する

ローカル私は経由.gitattributeファイルにファイルタイプを追加することにより、gitの-LFSの動作を制御することができます。これは、新しいzipファイルが追加された場合、それはgitの-LFSによって管理されることを引き起こす

git lfs track "*.zip" 

gitオブジェクトストアにコミットされていません。したがって、このようなファイル、複数の開発者で

largeFileCompressedThreshold = 1m 
    largeFileThreshold = 50m 

、それが起こるかもしれない環境を開発し、1つはのgit-LFSを設定せずに、このようなバイナリファイルを追加できます。

のgit-P4も私は次のようにサイズのしきい値を提出できますgitに直接提出してください。 私は、このようなコミットを拒否し、意味のあるメッセージを与えるサーバー側のフックを希望します。そのため、開発者は問題を容易に識別できます。

理想的には、この受信フックは既存のgit機能を使用して、スクリプトでコミットされているすべてのファイルを手動で解析する代わりに、.gitattributeを使用します。

答えて

0

これは、Git-HooksフレームワークのCheckFileプラグインのsizelimitディレクティブを使用して実行できます。我々はそれを使用し、それは本当にうまく動作します。

+0

ファイルがLSF経由で追跡されていることをどのように認識していますか? ファイルサイズのチェックではこれは実現可能なようです:ファイルがLSF経由で追跡されている場合、gitのファイルは参照に過ぎず、小さくなります。 しかし、これはファイルタイプのチェックにどのように機能しますか?ファイルが実際にgit-lfsリファレンスであるかどうかをCheckFileで判断できますか? これはすでに私を近づけています。これを達成するためにいくつかのチェックを追加することは可能かもしれません。 – user2144067

+0

githooks.checkfile.sizelimitは、実際のファイルをチェックします(ファイルの種類ではありません)。 Git-Hooksをテストしたい場合はhttp://search.cpan.org/~gnustavo/Git-Hooks/lib/Git/Hooks/TUTORIAL.podのチュートリアルに従ってください。 –

関連する問題