## Problem Pressing `du` on a `UU` (unmerged) file in the fugitive status buffer had no effect. There was no way to see a proper ours-vs-theirs diff with syntax highlighting and intra-line changes, or to resolve conflicts from within a unified diff view. Additionally, pressing `du` on a section header containing only unmerged files showed "no changes in section" because `git diff` produces combined (`diff --cc`) output for unmerged files, which was stripped entirely. ## Solution Fetch `:2:` (ours) and `:3:` (theirs) from the git index and generate a standard unified diff. The existing highlight pipeline (treesitter + intra-line) applies automatically. Resolution keymaps (`doo`/`dot`/`dob`/`don`) on hunks in the diff view write changes back to the working file's conflict markers. Navigation (`]x`/`[x`) jumps between unresolved conflict hunks. For section diffs, combined diff entries are now replaced with generated ours-vs-theirs unified diffs instead of being stripped. Works for merge, cherry-pick, and rebase conflicts — git populates `:2:`/`:3:` the same way for all three. Closes #61 |
||
|---|---|---|
| .. | ||
| commands_spec.lua | ||
| conflict_spec.lua | ||
| diff_spec.lua | ||
| fugitive_spec.lua | ||
| git_spec.lua | ||
| helpers.lua | ||
| highlight_spec.lua | ||
| init_spec.lua | ||
| merge_spec.lua | ||
| minimal_init.lua | ||
| parser_spec.lua | ||
| read_buffer_spec.lua | ||
| ux_spec.lua | ||