Resolve

Conflicts

{#if conflictTarget}
{isGerman ? "Bearbeiten mit" : "Edit with"}
{/if}
{#if conflictedFiles.length === 0}
All conflicts resolved. Continue the current operation when ready.
{:else}
{#each conflictedFiles as file (file.path)} {/each}
{#if !conflict}
Select a file to resolve.
{:else if conflict.binary}
Binary file — pick which version to keep, then mark it resolved.
{conflictTarget} {#if currentPrepared} Prepared {/if}
{:else}
{#if manualMode} {:else} Apply to all: {/if} {#if unresolvedCount > 0} {unresolvedCount} of {conflictRegionCount} unresolved {:else if resolveHasMarkers} Conflict markers still present {:else} {conflictRegionCount} {conflictRegionCount === 1 ? "conflict" : "conflicts"} resolved {/if}
{#if manualMode} {:else}
{#if conflictRegions.length > 0}
{#each conflictRegions as part (part.index)}
Conflict {part.index + 1}
{/each}
{/if}
syncResolveScroll("before")} >
{#each resolveSplitRows as row, i (`left-${i}`)} {#if row.type === "marker"}
Conflict {row.conflictIndex + 1}
{:else}
{row.leftNum ?? ""}
{displayLine(row.leftText ?? "") || " "}
{/if} {/each}
syncResolveScroll("after")} >
{#each resolveSplitRows as row, i (`right-${i}`)} {#if row.type === "marker"}
Conflict {row.conflictIndex + 1}
{:else}
{row.rightNum ?? ""}
{displayLine(row.rightText ?? "") || " "}
{/if} {/each}
{#if false} {#each legacyConflictParts() as part, partIndex (partIndex)} {#if part.kind === "text"} {#if part.lines.length > 0}
{#each part.lines as line}{displayLine(line) || " "}{/each}
{/if} {:else}
Conflict {part.index + 1}
Current (ours)
{#each part.oursLines as line}{displayLine(line) || " "}{/each}
Incoming (theirs)
{#each part.theirsLines as line}{displayLine(line) || " "}{/each}
{/if} {/each} {/if}
{/if}
{conflictTarget} {#if currentPrepared} Prepared {/if}
{/if}
{preparedCount} of {conflictedFiles.length} prepared
{/if}