あっ、いつの間にかGitHubの容量制限に!!
…のようなケアレスミス憤死を防ぐための転ばぬ先の杖的なスクリプトを用意しました。が、調査が足りず作る必要のない実装してしまい、いわゆる車輪の再発明をしていました。
車輪の再発明
私はよくUnityを使うので100MBを超えるFBXファイルだのメディアファイルだのをコミットしてよくリポジトリを詰まらせています。なので事故防止に自分用のスクリプトを作りました。が、これは必要ありません。
pre-commit
#!/bin/bash
MAX_SIZE=$((100 * 1024 * 1024)) # 100MB in bytes
all_files_ok=true
lfs_files=$(git lfs ls-files -n)
for file in $(git diff --cached --name-only)
do
if [ -f "$file" ]; then
if echo "$lfs_files" | grep -q "^$file$"; then
echo "Info: $file is managed by LFS. Skipping size check."
continue
fi
file_size=$(stat -c%s "$file")
if [ "$file_size" -gt "$MAX_SIZE" ]; then
echo "Error: $file is larger than 100MB ($(du -h "$file" | cut -f1))."
all_files_ok=false
fi
fi
done
if [ "$all_files_ok" = false ]; then
exit 1
fi
exit 0
これが車輪の再発明です。
check-added-large-filesを使えば良いので
以下のように設定したらおしまいです。
.pre-commit-config.yaml
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0 # 最新バージョンに合わせてください
hooks:
- id: check-added-large-files
args: ["--maxkb=102400"] # 100MBをKBで指定
pre-commitについてはこちらも参考にしていただけると。
https://qiita.com/raki/items/5374a91dca4a3039094b
道理で誰も作ってないわけだわ。指摘に感謝します。