Bug 478707

Summary: Support starting a merge with one side chosen everywhere
Product: [Applications] kdiff3 Reporter: Stephen Jennings <stephen.g.jennings>
Component: applicationAssignee: michael <reeves.87>
Status: REPORTED ---    
Severity: wishlist    
Priority: NOR    
Version First Reported In: unspecified   
Target Milestone: ---   
Platform: Other   
OS: Other   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Stephen Jennings 2023-12-19 06:52:15 UTC
SUMMARY

jj is a Git-compatible source control system that encourages editing revisions in-place. To edit a revision, several commands open a diff editor. For example, `jj diffedit` opens a directory comparison with a diff editor, and expects the right (side B) to be edited in-place.

KDiff3 works for this purpose, but requires the user to explicitly "Choose B Everywhere".

This is the command line used by default. I experimented but could not find any options that would do what I wanted:

    kdiff3 --merge --cs CreateBackFiles=0 $left $right

For comparison, Beyond Compare can open the diff editor with the right side editable with the following command line:

    bcomp $left $right /leftreadonly

Meld does this with:

    meld $left $right

POSSIBLE IMPLEMENTATION OPTIONS

One option would be a command line option --inplace which would edit the output directory in-place when used with --merge. I think this would have to be mutually exclusive with -o.

Another option would be command line options --edit-a and --edit-b to make the A or B sides of a diff (opened with `kdiff3 $left $right`) editable.

A third option would be a command line option that instructs KDiff3 to start with "Choose B Everywhere" in all files, something like:

    kdiff3 --merge --choose-b-everywhere $left $right