Automatic conflict resolution

Discuss new features and functions
Posts: 3
Joined: 6 Oct 2023

n4s

I use update synchronization with default config (use DB, sync added and changed files from the left, do nothing in the other cases).

1. Create file X.
2. Run FreeFileSync.
3. Change file X in the source.
3. Delete file X in the target.
4. Run FreeFileSync: It reports a conflict for X to be resolved manually.

Would it be possible to allow the configuration of automatic conflict resolution rules like "left-side wins" for such cases to not have the user manually do something?
User avatar
Posts: 2290
Joined: 22 Aug 2012

Plerry

You created the problem yourself by changing both the left-side (by changing the "source" file) and the right side (by deleting the "target" file) in between two syncs.
FFS then has no clue what the user really intended, and thus protects the user against her/himself by reporting this as a conflict the user needs to resolve manually.

A left-side-wins rule may be OK for your use-case, but may not be generally "safe".

You can easily prevent the problem yourself, by not deleting the file in the "target" in the first place.
Posts: 3
Joined: 6 Oct 2023

n4s

No, a left-side wins rule would not be generally safe.
Therefore, I asked for *configurable* conflict resolution rules. By default, the resolution could be set to manual resolution.
User avatar
Posts: 3620
Joined: 11 Jun 2019

xCSxXenon

I see how this could be useful, but it is a little more complex than I would hope. A 'conflict' is not a specific error, it is the result of many errors. So while, in your case, you are choosing an action for a scenario where source is updated and destination is deleted, there is a chance that you don't want that same action to be taken in other scenarios. For example, a 'conflict' is thrown when both copies change/update or if they have different content but the same date/timestamp. Do you really want the same action for every 'conflict'?
Posts: 3
Joined: 6 Oct 2023

n4s

Certainly not the same action for every conflict.
You would have to find possible cases and allow the configuration per case.
I hope there are not too many cases.