Skip to content

MD092 - Unresolved merge conflict markers

Aliases: merge-conflict

Enabled by default. This rule reports opening and closing Git and Jujutsu conflict markers, including partial conflicts and marker widths of seven or more characters. It checks fenced code blocks too: a merge can insert a real conflict inside a code example.

An unsuppressed finding prevents all formatting of that document, including line-ending normalization, embedded Markdown, external code-block tools, and editor formatting options. The original bytes are preserved. Other files are still processed. The rule has no automatic fix.

check and check --fix exit 1 for an unsuppressed conflict, unless --fail-on never is set. fmt, fmt --check, and fmt --diff report the conflict and skip the document, retaining their formatter-style exit code 0.

Documenting conflict markers

Suppress the rule around a literal example, then re-enable it so conflicts elsewhere still protect the document:

# Resolving a conflict

<!-- rumdl-disable merge-conflict -->
```text
<<<<<<< HEAD
Our version
=======
Their version
>>>>>>> branch
```
<!-- rumdl-enable merge-conflict -->

The surrounding documentation is checked and formatted normally.

The comments must be outside the code fence containing the example. Comments inside code blocks or inline code spans are literal text and do not disable rules. Suppressing an example does not hide a later unsuppressed conflict.

Suppression also hides any real conflict inside that region. Keep the region as small as possible.

Configuration

The standard rule controls apply, including disable, extend-disable, enable, inline disable-file and configure-file, and per-file ignores. For example, to disable this rule only in a document of conflict examples:

[per-file-ignores]
"docs/conflict-examples.md" = ["MD092"]

An explicit enable list that omits MD092 disables the safeguard, just as it excludes other rules. enable = [] disables every rule, including MD092.

The former merge-conflict diagnostic is now reported as MD092 in structured output. merge-conflict remains available as its configuration alias.