media/img and media/gif are tracked in git — 2,649 files, ~138MB total, which makes the full .git history ~126MB on its own. Every clone or fork pulls all of this down regardless.
This directly conflicts with how the project is meant to work: docker-compose.yml has a dedicated media service whose whole job is to download this same dataset (~140MB, from the hasaneyldrm/exercises-dataset repo) on first run and skip the download if it's already present:
media:
image: alpine/git
volumes:
- ./media/img:/out/img
- ./media/gif:/out/gif
command:
- |
if [ -z "$(ls -A /out/img 2>/dev/null)" ]; then
echo "↓ Downloading exercise media (~140 MB, one time)…"
git clone --depth 1 https://github.com/hasaneyldrm/exercises-dataset /tmp/ds
cp /tmp/ds/images/*.jpg /out/img/ && cp /tmp/ds/videos/*.gif /out/gif/
else
echo "✓ Exercise media already present — skipping download."
fi
So the media is shipped twice over: once baked into every git clone, and again downloaded at first docker compose up. There's no GitHub Actions workflow or GitHub Pages build in this repo that needs the files baked into the tree, so there's no reason for them to be committed.
Suggested fix: add media/img/ and media/gif/ to .gitignore and git rm -r --cached them — the media service already handles populating them at runtime.
media/imgandmedia/gifare tracked in git — 2,649 files, ~138MB total, which makes the full.githistory ~126MB on its own. Every clone or fork pulls all of this down regardless.This directly conflicts with how the project is meant to work:
docker-compose.ymlhas a dedicatedmediaservice whose whole job is to download this same dataset (~140MB, from thehasaneyldrm/exercises-datasetrepo) on first run and skip the download if it's already present:So the media is shipped twice over: once baked into every git clone, and again downloaded at first
docker compose up. There's no GitHub Actions workflow or GitHub Pages build in this repo that needs the files baked into the tree, so there's no reason for them to be committed.Suggested fix: add
media/img/andmedia/gif/to.gitignoreandgit rm -r --cachedthem — themediaservice already handles populating them at runtime.