Bug 457766

Summary: "Choose A for All Unsolved Conflicts" makes unexpected changes
Product: [Applications] kdiff3 Reporter: grmason
Component: applicationAssignee: michael <reeves.87>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version First Reported In: 1.9.5   
Target Milestone: ---   
Platform: Other   
OS: Microsoft Windows   
Latest Commit: Version Fixed/Implemented In: 1.10.0
Sentry Crash Report:

Description grmason 2022-08-11 15:57:03 UTC
SUMMARY
After making a manual change, Using "Choose A for All Unsolved Conflicts" makes unexpected changes/deletes whole lines from the manual change.

This is really frustrating and on several occasions has lead to broken merges when not caught before push. 

***
NOTE: If you are reporting a crash, please try to attach a backtrace with debug symbols.
See https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports
***


STEPS TO REPRODUCE
1.  Start merging two files with multiple changes
2.  Manually resolve a change by editing the conflict line directly
3.  Move to the next change, select from the menu:  "Choose A for All Unsolved Conflicts"

OBSERVED RESULT
Changes  from step 2 are replaced with additional the changes from A.

EXPECTED RESULT
Nothing is done for conflict lines marked with M manual change.

SOFTWARE/OS VERSIONS
Windows: Window 10 21H2
Qt Version: Unknown

ADDITIONAL INFORMATION
I've heard reports from several others about this behavior being non-intuitive. A warning or option to avoid this (off by default if necessary) would be much appreciated.
Comment 1 michael 2022-09-15 22:45:30 UTC
Just wanted acknowledge this. This isn't the behavior I would expect either since modified is definitely not unresolved.
Comment 2 michael 2022-09-21 18:55:27 UTC
Git commit 0dd54bde01b7b9c966109a45eee9bfa5ce9d89b0 by Michael Reeves.
Committed on 21/09/2022 at 18:39.
Pushed by mreeves into branch '1.10'.

Ignore manually editted blocks when resolving unresolved conflicts
FIXED-IN:1.10.0

M  +1    -1    src/MergeEditLine.cpp
M  +4    -0    src/MergeEditLine.h

https://invent.kde.org/sdk/kdiff3/commit/0dd54bde01b7b9c966109a45eee9bfa5ce9d89b0
Comment 3 michael 2022-09-21 18:57:06 UTC
Git commit 975618cf99dc1187caba7db6ba41f85cb409f6c6 by Michael Reeves.
Committed on 21/09/2022 at 18:14.
Pushed by mreeves into branch 'master'.

Ingnore manually editted blocks when resolving unresolved conflicts
FIXED-IN:1.10.0

M  +1    -1    src/MergeEditLine.cpp
M  +4    -0    src/MergeEditLine.h

https://invent.kde.org/sdk/kdiff3/commit/975618cf99dc1187caba7db6ba41f85cb409f6c6