私は周りを検索していくつかの関連トピックを見つけましたが、それらはすべてファイルサイズの制限またはクォータがあるという懸念に関連していました。
学生がコースプロジェクトを共有できる場所として、Gitoliteを使用してGitサーバーを構築しました。これはすべて、サーバー上の1つのユーザー名gitで、ワイルドカードリポジトリ「projects / Creator/[a-zA-Z0-9]。*」で機能します。リポジトリにはWRITERSとREADERSが定義されているため、ユーザーはリポジトリの書き込みと読み取りができるユーザーを変更できます。
SSHキーファイルが実装されているため、ユーザーは次の方法でリポジトリを作成できます。
git clone git@servername.edu:projects / bob / project1 git clone git@xervername.edu:projects / bob / someotherproj
等々。「bob」フォルダーは、最初にgit cloneを実行するときに作成されます(これはユーザー名です)。
私の問題は、学生であるため、虐待があり、「bob」フォルダのサイズを制限する必要があるということです。すべてのフォルダーとファイルがgitによって所有されているため、ディスククォータは機能しません。これは、すでに制限されています。
Linuxホームフォルダーからプロジェクトを提供するためにこれを再設計して、ディスククォータを使用できるようにすることはできますが、サーバーが機能するようになったので、このサーバーを再設計する必要はありません。
基本的に、私はこのラフシェルスクリプトのようなことをするフックを探していました:
foldersize=`du -s $GITPATH/projects/$USERNAME`
if [ $foldersize > 250000 ]; then
echo "Quota Exceeded"
exit 1
fi
書き込めるサーバーサイドフックがあることは理解しています。ホイールを彫り始める前に、ホイールがすでに作成されているかどうかを確認したかったのです。では、リポジトリのサイズを制限するためのフックはありますか?