diff --git a/.gitattributes b/.gitattributes index ff623c8..a9c30a3 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,29 +1,108 @@ +# ============================================================================ +# JANKENBOTS .gitattributes — Unity + Git LFS +# LFS objects are stored on the Forgejo remote (git.rdx4.com). git-lfs must be +# installed locally (`git lfs install`) — it is, repo-wide, as of 2026-07-12. +# ============================================================================ + # Normalize line endings; Unity is happiest with LF for its YAML text assets. * text=auto eol=lf *.cs text diff=csharp eol=lf -# Unity YAML text assets — mergeable with UnityYAMLMerge -*.unity merge=unityyamlmerge eol=lf -*.prefab merge=unityyamlmerge eol=lf -*.asset merge=unityyamlmerge eol=lf -*.meta merge=unityyamlmerge eol=lf -*.mat merge=unityyamlmerge eol=lf -*.anim merge=unityyamlmerge eol=lf -*.controller merge=unityyamlmerge eol=lf +# ---- Unity YAML *text* assets — mergeable with UnityYAMLMerge, NOT LFS ------- +# These are human-readable YAML (Asset Serialization = Force Text). Keep them as +# normal git text so diffs/merges work. Do NOT add them to LFS. +*.unity merge=unityyamlmerge eol=lf +*.prefab merge=unityyamlmerge eol=lf +*.asset merge=unityyamlmerge eol=lf +*.meta merge=unityyamlmerge eol=lf +*.mat merge=unityyamlmerge eol=lf +*.anim merge=unityyamlmerge eol=lf +*.controller merge=unityyamlmerge eol=lf +*.physicMaterial merge=unityyamlmerge eol=lf +*.physicsMaterial merge=unityyamlmerge eol=lf -# Common binary asset types (mark binary so git doesn't mangle them) -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.psd binary -*.fbx binary -*.obj binary -*.wav binary -*.mp3 binary -*.ogg binary -*.dll binary -*.a binary -*.so binary +# ============================================================================ +# Git LFS — large binaries (art / audio / video / models / fonts / native libs) +# filter=lfs diff=lfs merge=lfs -text +# ============================================================================ -# NOTE: no Git LFS yet. Add it (and move large binaries to LFS) once real art/audio lands. +# ---- Images / textures ------------------------------------------------------ +*.png filter=lfs diff=lfs merge=lfs -text +*.jpg filter=lfs diff=lfs merge=lfs -text +*.jpeg filter=lfs diff=lfs merge=lfs -text +*.gif filter=lfs diff=lfs merge=lfs -text +*.bmp filter=lfs diff=lfs merge=lfs -text +*.tga filter=lfs diff=lfs merge=lfs -text +*.tif filter=lfs diff=lfs merge=lfs -text +*.tiff filter=lfs diff=lfs merge=lfs -text +*.psd filter=lfs diff=lfs merge=lfs -text +*.ai filter=lfs diff=lfs merge=lfs -text +*.dds filter=lfs diff=lfs merge=lfs -text +*.iff filter=lfs diff=lfs merge=lfs -text +*.pict filter=lfs diff=lfs merge=lfs -text +*.exr filter=lfs diff=lfs merge=lfs -text +*.hdr filter=lfs diff=lfs merge=lfs -text + +# ---- Audio ------------------------------------------------------------------ +*.wav filter=lfs diff=lfs merge=lfs -text +*.mp3 filter=lfs diff=lfs merge=lfs -text +*.ogg filter=lfs diff=lfs merge=lfs -text +*.aif filter=lfs diff=lfs merge=lfs -text +*.aiff filter=lfs diff=lfs merge=lfs -text +*.flac filter=lfs diff=lfs merge=lfs -text +*.mod filter=lfs diff=lfs merge=lfs -text +*.it filter=lfs diff=lfs merge=lfs -text +*.s3m filter=lfs diff=lfs merge=lfs -text +*.xm filter=lfs diff=lfs merge=lfs -text + +# ---- Video ------------------------------------------------------------------ +*.mp4 filter=lfs diff=lfs merge=lfs -text +*.mov filter=lfs diff=lfs merge=lfs -text +*.avi filter=lfs diff=lfs merge=lfs -text +*.webm filter=lfs diff=lfs merge=lfs -text +*.mpg filter=lfs diff=lfs merge=lfs -text +*.mpeg filter=lfs diff=lfs merge=lfs -text +*.flv filter=lfs diff=lfs merge=lfs -text +*.ogv filter=lfs diff=lfs merge=lfs -text +*.wmv filter=lfs diff=lfs merge=lfs -text + +# ---- 3D models -------------------------------------------------------------- +*.fbx filter=lfs diff=lfs merge=lfs -text +*.obj filter=lfs diff=lfs merge=lfs -text +*.blend filter=lfs diff=lfs merge=lfs -text +*.dae filter=lfs diff=lfs merge=lfs -text +*.3ds filter=lfs diff=lfs merge=lfs -text +*.max filter=lfs diff=lfs merge=lfs -text +*.c4d filter=lfs diff=lfs merge=lfs -text +*.mb filter=lfs diff=lfs merge=lfs -text +*.ma filter=lfs diff=lfs merge=lfs -text +*.lwo filter=lfs diff=lfs merge=lfs -text +*.lws filter=lfs diff=lfs merge=lfs -text +*.abc filter=lfs diff=lfs merge=lfs -text +*.ply filter=lfs diff=lfs merge=lfs -text +*.stl filter=lfs diff=lfs merge=lfs -text +*.glb filter=lfs diff=lfs merge=lfs -text +*.gltf filter=lfs diff=lfs merge=lfs -text + +# ---- Fonts ------------------------------------------------------------------ +*.ttf filter=lfs diff=lfs merge=lfs -text +*.otf filter=lfs diff=lfs merge=lfs -text + +# ---- Native libraries / archives / binary bundles --------------------------- +*.dll filter=lfs diff=lfs merge=lfs -text +*.so filter=lfs diff=lfs merge=lfs -text +*.dylib filter=lfs diff=lfs merge=lfs -text +*.a filter=lfs diff=lfs merge=lfs -text +*.bundle filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.7z filter=lfs diff=lfs merge=lfs -text +*.rar filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.unitypackage filter=lfs diff=lfs merge=lfs -text +*.unity3d filter=lfs diff=lfs merge=lfs -text +*.assetbundle filter=lfs diff=lfs merge=lfs -text + +# ---- Binary .asset exceptions (override the text rule above) ---------------- +# Baked lighting / cubemaps are binary despite the .asset extension. +*.cubemap filter=lfs diff=lfs merge=lfs -text +LightingData.asset filter=lfs diff=lfs merge=lfs -text