Skip to content
Merged
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
112 changes: 96 additions & 16 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,27 +1,107 @@
# Auto detect text files
# Normalize line endings for all text files
* text=auto

# Custom for Visual Studio
*.cs diff=csharp text=auto eol=lf
*.vb diff=csharp text=auto eol=lf
*.fs diff=csharp text=auto eol=lf
*.fsi diff=csharp text=auto eol=lf
*.fsx diff=csharp text=auto eol=lf
###############################
# .NET Language Files
###############################
# Force LF for source code files to ensure consistency across platforms
*.cs diff=csharp text eol=lf
*.vb diff=csharp text eol=lf
*.fs diff=csharp text eol=lf
*.fsi diff=csharp text eol=lf
*.fsx diff=csharp text eol=lf

###############################
# .NET Project Files
###############################
# Force CRLF for Visual Studio compatibility
*.sln text eol=crlf merge=union
*.csproj merge=union
*.vbproj merge=union
*.fsproj merge=union
*.dbproj merge=union
*.csproj text eol=crlf merge=union
*.vbproj text eol=crlf merge=union
*.fsproj text eol=crlf merge=union
*.dbproj text eol=crlf merge=union
*.props text eol=crlf
*.targets text eol=crlf

###############################
# Windows Scripts
###############################
# Force CRLF for Windows batch files and scripts
*.cmd text eol=crlf
*.bat text eol=crlf

###############################
# Unix/Linux Scripts
###############################
# Force LF for shell scripts
*.sh text eol=lf

# Standard to msysgit
*.doc diff=astextplain
###############################
# Configuration Files
###############################
# Configuration and data files should use LF
*.json text eol=lf
*.yml text eol=lf
*.yaml text eol=lf
*.xml text eol=lf
*.config text eol=lf
*.md text eol=lf
*.html text eol=lf
*.css text eol=lf
*.js text eol=lf
*.ts text eol=lf

###############################
# Binary Files - Git LFS
###############################
# Images
*.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
*.ico filter=lfs diff=lfs merge=lfs -text
Comment on lines +58 to +63
Copy link

Copilot AI Oct 26, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Git LFS must be installed and initialized in the repository before these filter rules take effect. Consider adding installation/setup instructions to the README or documenting this requirement in the PR description to prevent confusion when team members encounter LFS pointer files instead of actual binary content.

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added note to PR description about Git LFS installation requirement. Teams will need to run git lfs install and git lfs track commands before these filter rules take effect in new repositories.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot you need to update the README's under Content/Library and Content/Console. Don't rely on the PR for documenting this.

*.svg text eol=lf

# Documents
*.pdf filter=lfs diff=lfs merge=lfs -text
*.doc filter=lfs diff=lfs merge=lfs -text
*.docx filter=lfs diff=lfs merge=lfs -text
*.xls filter=lfs diff=lfs merge=lfs -text
*.xlsx filter=lfs diff=lfs merge=lfs -text
*.ppt filter=lfs diff=lfs merge=lfs -text
*.pptx filter=lfs diff=lfs merge=lfs -text

# Archives
*.zip filter=lfs diff=lfs merge=lfs -text
*.tar filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.rar filter=lfs diff=lfs merge=lfs -text
*.7z filter=lfs diff=lfs merge=lfs -text

# Executables and Libraries
*.exe filter=lfs diff=lfs merge=lfs -text
*.dll filter=lfs diff=lfs merge=lfs -text
*.so filter=lfs diff=lfs merge=lfs -text
*.dylib filter=lfs diff=lfs merge=lfs -text
*.lib filter=lfs diff=lfs merge=lfs -text
*.a filter=lfs diff=lfs merge=lfs -text

# Media Files
*.mp4 filter=lfs diff=lfs merge=lfs -text
*.avi filter=lfs diff=lfs merge=lfs -text
*.mov filter=lfs diff=lfs merge=lfs -text
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text

###############################
# Legacy Binary Handling
###############################
# Fallback for document types that might not use LFS
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain
*.rtf diff=astextplain