ITR2_ASSET/.scripts/lfs.sh

34 lines
967 B
Bash
Raw Normal View History

2024-11-17 00:37:10 +00:00
#!/bin/bash
# Set the size threshold in bytes (e.g., 10MB = 10 * 1024 * 1024)
THRESHOLD=$((10 * 1024 * 1024))
# Ensure Git LFS is initialized
git lfs install --skip-smudge
# Find large files in the current commit and throughout history
echo "Identifying large files exceeding $((THRESHOLD / 1024 / 1024))MB..."
large_files=$(find . -type f -size +${THRESHOLD}c ! -path "./.git/*")
if [ -z "$large_files" ]; then
echo "No files larger than $((THRESHOLD / 1024 / 1024))MB found."
exit 0
fi
# Track large files with Git LFS
for file in $large_files; do
if git check-ignore -q "$file"; then
continue
fi
echo "Tracking large file with Git LFS: $file"
git rm --cached "$file" >/dev/null 2>&1 ## Untrack the file from git
echo "[LFS]" $(git lfs track "$file") ## Track the file with git-lfs
done
# Add changes to .gitattributes
if [ -f .gitattributes ]; then
git add .gitattributes
else
echo "No .gitattributes file found; no changes made."
fi