2017-12-13 7 views
0

サイズを制御する必要があるリポジトリがあり、制限を超えた場合は変更をブロックします。これを実装する方法は?スクリプト上Gitリポジトリが最大サイズを超えて大きくなるのを防ぐには?

+0

スレッシュホールドに達してブロックすると、開発作業はどのように続行されますか?より良いアプローチは、あなたがレポから実際に大きくて悪いものを守ることです。大きなバイナリファイル。 –

+0

gitリポジトリのサイズを意図的に制限することです。 –

+0

ブロックすることで問題を解決する代わりに、Git Virtual File Systemを見たことがありますか? https://github.com/Microsoft/GVFSこれにより、膨大なリポジトリが完全に動作するようになります。 –

答えて

1

.git /フック/事前に受信

#!/bin/bash 

# size limit 2(Gb) 
sizelimit_gb=2 

reposize_kb=`git count-objects -v | grep 'size-pack' | sed 's/.*\(size-pack:\).//'` 
let reposize_b=$reposize_kb*1024 
let sizelimit_b=$sizelimit_gb*1024*1024*1024 

if [ $reposize_b -gt $sizelimit_b ]; then 
    echo "Error: repository size > $sizelimit_gb Gb" 
    exit 1 
#else 
# echo "<= $sizelimit_gb Gb" 
fi 

exit 0 

実行権限が(chmod +x .git/hooks/pre-receive)が有効で、サーバー内.git/hooks/pre-receiveとして保存する必要があります。

関連する問題