nextcloud / desktop

💻 Desktop sync client for Nextcloud
https://nextcloud.com/install/#install-clients
GNU General Public License v2.0
3.03k stars 797 forks source link

better support for conflict resolution - display both version next to each other #3276

Open ferdiga opened 3 years ago

ferdiga commented 3 years ago

How to use GitHub

Feature description

To decide which version is the correct one, it is usually necessary to make a visual comparison, the date alone is often not sufficient

After solving one conflict the program should jump to the next one

JustRedTTG commented 1 year ago

kinda like a github changes preview

JL102 commented 1 year ago

Implementation suggestion for preview:

If a text file is detected, then the program should check for text editors installed on the system that support viewing diffs. Nextcloud should then open the diff with the selected program. (image 2) Once the file is saved and closed, the Nextcloud window should reopen, giving the option to select the manually merged version. (image 3) If no supported text editors are found, it should display a web link to a list of supported editors. (image 1) If an image file is detected, then the program should display both images in the space below the two checkbox options. (image 4)

image

Additional suggestion: Please put an additional button on the bottom with "Apply this resolution to all conflicts of this type". If either "Local version" or "Server version" are selected (i.e. not the new "Merged version" that I'm suggesting), then the button should be enabled. When clicked, a new dialogue should appear with the following prompt, with buttons Yes and Cancel:

Are you sure you want to apply this resolution to <NUMBER> unresolved conflicts?

Resolution: ("Keep server version" or "Keep local version")
Conflict type: (conflict type)

By "conflict type" I mean, for example, local modification at the same time as server delete, or local delete at the same time as server modification, or two modifications. This was a feature I requested from Insync ages ago, because it was extremely time consuming clicking through all my conflicts one at a time. When I know that I want to apply the same resolution to all of my conflicts, I'd really like the ability to click once to apply the same resolution to all of them.

rugk commented 2 months ago

If an image file is detected, then the program should display both images in the space below the two checkbox options.

Note a further advanced diff comparison mechanism could be by using the variants GitHub offers – a slider on the image, or transparency setting comparing both images.

You can e.g. see such a one here on GitHub: grafik

See here for more information.