# Git LFS configuration for unicefstats-mcp-dev
#
# Strategy: NEW large benchmark-output files go to LFS; existing files
# stay in regular git history (no `git lfs migrate` rewrite — would
# diverge clones and the public-mirror sync). Once a file path matches
# a pattern below AND is added to git, it becomes an LFS pointer in
# that commit going forward. Existing files committed before this
# `.gitattributes` landed remain as inline-git blobs.
#
# Rationale per file class:
#   - examples/results/*.parquet     binary; columnar; LFS is the
#                                    natural home (and these don't
#                                    sync to public — see below).
#   - examples/results/*.csv         per-query response dump; ~600KB-
#                                    1.1MB each; LFS keeps git pack
#                                    files lean.
#   - analysis/figures/*.png/*.svg   regenerated artefacts; small, but
#                                    PNG binary diffs don't compress
#                                    well in git; LFS is appropriate.
#
# What is NOT in LFS (intentional):
#   - examples/ground_truth_*/{sample.csv,ground_truth_values.csv,
#     query_universe.csv,metadata.json} — input data; needs to be
#     diffable for replication; tracked in regular git.
#   - examples/results/*.json — small summary files (~1KB each);
#     headline numbers; useful even on the public mirror; stay in
#     regular git.
#
# Public-mirror sync pairing: see .github/workflows/sync-to-public.yml
# rsync excludes for `examples/results/*.parquet` and
# `examples/results/*.csv` — raw run data is dev-only.

examples/results/*.parquet  filter=lfs diff=lfs merge=lfs -text
examples/results/*.csv      filter=lfs diff=lfs merge=lfs -text
analysis/figures/*.png      filter=lfs diff=lfs merge=lfs -text
analysis/figures/*.svg      filter=lfs diff=lfs merge=lfs -text
