Problem: pressing du on a UU file in fugitive status fell through to the unstaged path, where get_index_content(:0:) fails because unmerged files have no stage 0 entry. The fallback produced a useless diff of HEAD vs working file with conflict markers shown as changes. Solution: add a merge.lua module that diffs git show :2: (ours) vs :3: (theirs), displays the result with full syntax and intra-line highlighting, and provides resolution keymaps (doo/dot/dob/don/]x/[x) that write back to the working file's conflict markers. Hunks are matched to conflict regions by comparing diff del-lines against each region's ours content. Resolved hunks are tracked per-buffer with virtual text. commands.lua gains an unmerged branch in gdiff_file and read_buffer, and plugin/diffs.lua registers Plug(diffs-merge-*) mappings. |
||
|---|---|---|
| .. | ||
| diffs | ||