###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
 * text=auto encoding=UTF-8 

*.sh text=auto eol=lf
*.cmd text=auto eol=crlf
*.bat text=auto eol=crlf

###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
 *.cs     diff=csharp text  
 *.vb     text 

###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following 
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln       merge=binary
#*.csproj    merge=binary
#*.vbproj    merge=binary
#*.vcxproj   merge=binary
#*.vcproj    merge=binary
#*.dbproj    merge=binary
#*.fsproj    merge=binary
#*.lsproj    merge=binary
#*.wixproj   merge=binary
#*.modelproj merge=binary
#*.sqlproj   merge=binary
#*.wwaproj   merge=binary

###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg   binary
#*.png   binary
#*.gif   binary

###############################################################################
# diff behavior for common document formats
# 
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the 
# entries below.
###############################################################################
#*.doc   diff=astextplain
#*.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

.github/workflows/*.lock.yml linguist-generated=true merge=ours

###############################################################################
# Localization resource files
#
# Edits to .resx and .xlf files are nearly always additive (new entries with
# distinct keys), so the union merge driver concatenates both sides instead of
# producing conflict markers. This significantly reduces friction when several
# PRs add new strings in parallel.
#
# Caveats:
#   * If two PRs add an entry with the SAME name/id, both will end up in the
#     file and the build will fail with a duplicate-resource error. Resolve by
#     editing the .resx and re-running the project's `/t:UpdateXlf` target.
#   * If two PRs modify the SAME existing line (e.g. retouch the same English
#     string or translation), union merges both sides silently with no
#     conflict marker. Review resx/xlf hunks during PR review when both sides
#     touched pre-existing entries.
#   * XLF files are generated from the neutral .resx via the `UpdateXlf`
#     MSBuild target, so any union artefact in an xlf can be recovered by
#     running that target.
###############################################################################
*.resx merge=union
*.xlf  merge=union

# BEGIN gh-copilot-curate managed
# Keep installed skills and agents at stable bytes across CRLF/LF checkouts
# so gh copilot-curate verify does not report spurious drift.
.agents/skills/** text eol=lf
.github/agents/** text eol=lf
# END gh-copilot-curate managed


