Add repository storage guardrails
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
repo_root="$(git rev-parse --show-toplevel)"
|
||||
cd "$repo_root"
|
||||
|
||||
echo "Agrarian repository storage audit"
|
||||
echo "Repository: $repo_root"
|
||||
echo
|
||||
|
||||
echo "Working tree size:"
|
||||
du -sh . 2>/dev/null || true
|
||||
echo
|
||||
|
||||
echo "Git object database:"
|
||||
git count-objects -vH
|
||||
echo
|
||||
|
||||
echo "Largest tracked files in HEAD:"
|
||||
largest_tracked="$(mktemp)"
|
||||
git ls-tree -r -l HEAD | sort -k4 -nr > "$largest_tracked"
|
||||
head -n 25 "$largest_tracked" | awk '{ printf "%10s %s\n", $4, $5 }'
|
||||
rm -f "$largest_tracked"
|
||||
echo
|
||||
|
||||
if git lfs version >/dev/null 2>&1; then
|
||||
echo "Largest Git LFS objects:"
|
||||
largest_lfs="$(mktemp)"
|
||||
git lfs ls-files -s | sed -E 's/^.*\\(([^)]*)\\)$/\\1 &/' | sort -hr > "$largest_lfs"
|
||||
head -n 25 "$largest_lfs"
|
||||
rm -f "$largest_lfs"
|
||||
else
|
||||
echo "Git LFS is not installed."
|
||||
fi
|
||||
echo
|
||||
|
||||
echo "Generated/local directories:"
|
||||
for path in Binaries Intermediate Saved DerivedDataCache .vs Builds; do
|
||||
if [ -e "$path" ]; then
|
||||
du -sh "$path" 2>/dev/null || true
|
||||
fi
|
||||
done
|
||||
echo
|
||||
|
||||
cat <<'NOTE'
|
||||
Policy reminder:
|
||||
- Do not store packaged builds, raw DEM/lidar/GIS datasets, DerivedDataCache, or
|
||||
generated terrain tile caches in GitHub.
|
||||
- Use Git for source, scripts, metadata, docs, and curated project assets.
|
||||
- Use DevBox or future object storage for large artifacts and source data.
|
||||
NOTE
|
||||
Reference in New Issue
Block a user