Feature Request: Auto-one way

Discuss new features and functions
Posts: 1
Joined: 28 Aug 2010

butter100fly

I regularly have what should be an automated (timestamp only) sync batch throwing me back to manual mode because a few "unimportant" files have changed on both sides. But I DON'T want to exclude them (because I do ocassionally change them and don't want these files to forevermore be unsynced). I'd rather potentially one-off lose changes to one side, than lose sync entirely. I think that's probably a common goal for certain types of file when we don't need or want to think about the complexities of merging etc. We could sum it up as: "better some sync than none"

So a gui-triggered option to always take the later change, or to always copy right-to-left, etc....or failing that a globabl setting "On conflict..."
Posts: 27
Joined: 31 Jan 2010

jonrichco

Why not just set FFS to mirror right-to-left or update instead of two-way
User avatar
Posts: 2450
Joined: 22 Aug 2012

Plerry

> Why not just set FFS to mirror right-to-left or update instead of two-way

Or first run a two-way sync, that excludes the conflicts,
and then run a mirror sync on the same left-right pair.
Posts: 4
Joined: 9 May 2014

jstnlth

I was going to make a similar request - for batch processes not to require manual intervention to end a conflict. I have two clients both making changes, so can't force a "right" or "left" all the time.

I was going to suggest a "delay" option for custom conflict action (left,right,none,delay). A conflict would be "resolved" the next time that one side made a new change. So the logic would be something like this:

if <Conflict> = none OR <Conflict> = delay
if <Conflict> = delay AND (LEFT=changed XOR RIGHT=changed)
#only one side has made a change
resume normal syncing - a new change overwrites an old file
end if
else
#<Conflict>=none, or no files changed, or new conflict arose
LOG: Warning: the following items have unresolved conflicts...
if LEFT=changed OR RIGHT=changed
update database file information
end if
end if


This seems to be a safer way to "automatically" make a decision about which version is the authoritative one. The side doing "the most work" wins.
Posts: 4
Joined: 9 May 2014

jstnlth

I was going to make a similar request - for batch processes not to require manual intervention to end a conflict. I have two clients both making changes, so can't force a "right" or "left" all the time.

I was going to suggest a "delay" option for custom conflict action (left,right,none,delay). A conflict would be "resolved" the next time that one side made a new change. So the logic would be something like this:

if <Conflict> = none OR <Conflict> = delay
if <Conflict> = delay AND (LEFT=changed XOR RIGHT=changed)
#only one side has made a change
resume normal syncing - a new change overwrites an old file
end if
else
#<Conflict>=none, or no files changed, or new conflict arose
LOG: Warning: the following items have unresolved conflicts...
if LEFT=changed OR RIGHT=changed
update database file information
end if
end if


This seems to be a safer way to "automatically" make a decision about which version is the authoritative one. The side doing "the most work" wins.jstnlth
I decided to solve this by scheduling a batch file, implementing Pierry's second suggestion. First run a "TwoWay" sync (to catch deletes/renames etc). If that fails with a warning (conflicts are a warning), run FFS a second time with a "Custom" sync to resolve the conflicting files by forcing a copy to the right.


REM BATCH FILE - ensure xxx.ffs_batch paramater passed
if not "%*" == "" (
if exist "%1" (
echo DEBUG: Setting Backup target to [%1]
)
) else (
echo ERROR: no file specified
goto :EOF
)

"%ProgramFiles%\FreeFileSync\FreeFileSync.exe" %1
if ERRORLEVEL 1 (
echo DEBUG: FFS completed with warnings (potentially a conflict)
echo DEBUG: Rerunning FFS with "Custom" version of the config to clear up conflicts.
"%ProgramFiles%\FreeFileSync\FreeFileSync.exe" Custom%1
)



Note 1: requires that the xxx.ffs_batch not have an spaces in the name.