52 lines
1.3 KiB
Bash
52 lines
1.3 KiB
Bash
#!/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
|