# .gitattributes — SOLUTION_ERP
#
# ── THỨ-TỰ CÓ CHỦ-ĐÍCH (git: dòng SAU thắng dòng TRƯỚC trên cùng attribute) ──
#   1) sàn chung `*`  →  2) rule text tường-minh  →  3) khai binary (SAU CÙNG = thắng tuyệt-đối)
#   Binary để cuối vì hỏng-binary không cứu được, còn hỏng-EOL thì renormalize lại được.

# ── (1) SÀN CHUNG — S120 W0.1 (broadcast EOL/CRLF 2026-07-15) ────────────────────────
# core.autocrlf=true @system (C:/Program Files/Git/etc/gitconfig) lật LF→CRLF lúc checkout
# ⇒ file MỚI / file ghi-lại dính CRLF trong worktree. `text=auto eol=lf` ⇒ blob LF + worktree LF,
# ĐỘC-LẬP với autocrlf ⇒ đóng mìn tận gốc thay vì gỡ từng quả.
# 🔴 Khai theo CLASS, KHÔNG vá theo đuôi-file-vừa-cắn (spec v2 W0.1).
# 🔸 Nấc trung-thực: dòng này KHÔNG sửa 188 file đang `i/lf w/crlf` — nó chỉ chi-phối file
#    MỚI/ghi-lại. Mass rm+checkout 188 = CẤM ở phiên này (spec v2 W0.2: việc riêng, phiên riêng).
* text=auto eol=lf

# ── (2) RULE TEXT TƯỜNG-MINH — giữ nguyên 2 rule cũ ──────────────────────────────────
# Harness 3 email body-hash (content_sha256) tính trên body LF; autocrlf=true (Windows) lật
# LF→CRLF lúc checkout ⇒ vỡ body-hash verify KỂ CẢ khi nội-dung không hề bị sửa (S63 2026-06-15).
# Nay đã được `*` phủ, nhưng GIỮ tường-minh: đây là ràng-buộc GIAO-THỨC, không phải hệ-quả phụ.
broadcasts/** text eol=lf

# H22 WAL (S111): phòng-hộ file .sh tương-lai (hook SE dùng .ps1 — path-independent trên Windows).
*.sh text eol=lf

# ── (3) BINARY THẬT — CẤM mọi phép đổi EOL ───────────────────────────────────────────
# Khai TƯỜNG-MINH thay vì phó-thác heuristic của `text=auto`: heuristic đoán bằng NUL-byte trong
# 8000 byte đầu ⇒ một .docx/.xlsx "gầy" có thể lọt thành text ⇒ EOL-mangle ⇒ hỏng file KHÔNG cứu được.
# Đo lúc khai (S120): repo có 19 file git tự-nhận binary = 12 .docx + 6 .png + 1 .xlsx.
# Khai rộng hơn tập đó theo CLASS — .pptx/.pdf (form-engine 8 form HĐ) + .woff/.woff2/.ico (FE 2 app)
# chắc-chắn sẽ tới; khai trước = không phải đợi file hỏng rồi mới vá.
# 🔸 .svg (8 file) = XML ⇒ TEXT, CỐ Ý không khai ở đây.
*.zip   binary
*.exe   binary
*.dll   binary
*.docx  binary
*.xlsx  binary
*.pptx  binary
*.pdf   binary
*.png   binary
*.jpg   binary
*.jpeg  binary
*.ico   binary
*.woff  binary
*.woff2 binary
