# Resources/markdown-viewer holds vendored third-party runtime bundles (mermaid,
# vega, highlight.js) plus the generated webviews React app build (the diff
# viewer, its highlight worker and the lazy Shiki grammar/theme/WASM chunks).
# They are not authored source, so exclude them from GitHub Linguist's
# language stats.
Resources/markdown-viewer/** linguist-vendored
Resources/markdown-viewer/webviews-app/** linguist-generated

# Xcode string catalogs are one large JSON object keyed by string id. Two
# branches that each add a different key collide positionally, producing dozens
# of conflict hunks with no semantic disagreement. scripts/merge-xcstrings.py
# merges per key and writes an ordinary conflict whenever both sides changed the
# same key. Register it with scripts/install-git-hooks.sh (run by setup.sh);
# without that config git silently uses the default driver.
*.xcstrings merge=xcstrings-v2

# A merge can run right after checking out a fork branch, so a driver resolved
# from the working tree would run that branch's code with the maintainer's
# credentials. scripts/install-git-hooks.sh installs reviewed copies into
# $GIT_COMMON_DIR/cmux-merge-drivers and configures absolute paths to those, so
# what git executes is not what a branch can rewrite; it also repoints the
# older checkout-relative merge.xcstrings name at the same trusted copy.
# scripts/ci/catch_up_pr.py pins every driver to false instead, since catch-up
# only needs to know which paths are unmerged.

# The Xcode project file collides the same way, and for a sharper reason: no
# target here is filesystem-synchronized, so adding one source file writes four
# entries, and two branches adding different files append to all four of the
# same regions. scripts/merge-pbxproj.py takes the union of entries each side
# added and writes an ordinary conflict whenever a hunk is anything else. Same
# registration.
cmux.xcodeproj/project.pbxproj merge=pbxproj-v1
