Feature request: Practical global versioning

Discuss new features and functions
Posts: 6
Joined: 15 Aug 2024

Sync

So at the moment I have 1 big folder for versioning, and all the files from the sync get thrown in there in 1 big mess.

I (think) I understand that the proper way to do versioning is to specify a versioning path for each entry.

I would like if there was a cleaner global way to do versioning, such as where the global versioning folder you specify; takes into account the path of the sync.

E.g.

Sync:
C:\ProgramData\Microsoft > XXX
C:\Program Files (x86)\Adobe > XXX

Versioning (global):
D:\FreeFileSync\Versioning

What is made now:
D:\FreeFileSync\Versioning\2024-10-27 021530\*ALL FILES FROM ALL ENTRIES IN 1 HEAP*

What I'd like to be made:
D:\FreeFileSync\Versioning\ProgramData\Microsoft\2024-10-27 021530\*specified folders/files*
D:\FreeFileSync\Versioning\Program Files (x86)\Adobe\2024-10-27 021530\*specified folders/files*

Thanks for reading.
User avatar
Posts: 2463
Joined: 22 Aug 2012

Plerry

I always use the Time Stamp [File] variant of Versioning, not the Time Stamp [Folder] variant, as you apparently do.
But according to the FFS Manual page on Versioning both Versioning variants retain the folder structure of files relative to the left and right base locations.
From experience I know that at least the [File] variant acts as described in the manual.
Your *ALL FILES FROM ALL ENTRIES IN 1 HEAP* stems from your choice of base locations.

For your example there is a simple solution:
Sync:
C:\ > YYY (just a single left-right pair)
And change your Include Filter from * (=everything) into two lines
ProgramData\Microsoft
Program Files (x86)\Adobe

FFS will now sync just ProgramData\Microsoft and Program Files (x86)\Adobe (and any of their subfolders) and retain retain the folder structure relative to C: on both YYY and in the Versioning location.
In your sync location this will give you
YYY\ProgramData\Microsoft\[folders/files] and
YYY\Program Files (x86)\Adobe\[folders/files]
And if your Versioning location is D:\FreeFileSync\Versioning\ , you should then e.g. get
D:\FreeFileSync\Versioning\2024-10-27 021530\ProgramData\Microsoft\[folders/files]
D:\FreeFileSync\Versioning\2024-10-27 021530\Program Files (x86)\Adobe\[folders/files]

As also described on the Versioning manual page, when using the Replace variant of Versioning, you should be able to tailor your Versioning location by using Macros. That may be your way to go if my above described approach does not fully meet your needs, and you do not want to specify a versioning path for each left-right pair.
Posts: 6
Joined: 15 Aug 2024

Sync

I always use the Time Stamp [File] variant of Versioning, not the Time Stamp [Folder] variant, as you apparently do.
But according to the FFS Manual page on Versioning both Versioning variants retain the folder structure of files relative to the left and right base locations.
From experience I know that at least the [File] variant acts as described in the manual.
Your *ALL FILES FROM ALL ENTRIES IN 1 HEAP* stems from your choice of base locations.

For your example there is a simple solution:
Sync:
C:\ > YYY (just a single left-right pair)
And change your Include Filter from * (=everything) into two lines
ProgramData\Microsoft
Program Files (x86)\Adobe

FFS will now sync just ProgramData\Microsoft and Program Files (x86)\Adobe (and any of their subfolders) and retain retain the folder structure relative to C: on both YYY and in the Versioning location.
In your sync location this will give you
YYY\ProgramData\Microsoft\[folders/files] and
YYY\Program Files (x86)\Adobe\[folders/files]
And if your Versioning location is D:\FreeFileSync\Versioning\ , you should then e.g. get
D:\FreeFileSync\Versioning\2024-10-27 021530\ProgramData\Microsoft\[folders/files]
D:\FreeFileSync\Versioning\2024-10-27 021530\Program Files (x86)\Adobe\[folders/files]

As also described on the Versioning manual page, when using the Replace variant of Versioning, you should be able to tailor your Versioning location by using Macros. That may be your way to go if my above described approach does not fully meet your needs, and you do not want to specify a versioning path for each left-right pair. Plerry, 27 Oct 2024, 08:11
My whole layout is completely different to that. I have 100s of lines of entries, all of which define the FULL folder path to backup on the left, with the INCLUDE FILTERS specifying the the INDIVIDUAL FILES I need. This is why my versioning is a mess; because the folder directory is defined in the entry - not within "include".

I thought this was the intended way to use the program, but given how laggy it is when use this many entries, and the fact that versioning is completely broken this way... apparently not.

It's weird because I find having each path you want to backup being its own entry to be more visually clear and more flexible. Of course if there's a full folder you need within the directory entry you just throw it in "include", but otherwise; everything has its own entry.

I would need to re-do the whole thing to fix this versioning mess. I'll have to bite the bullet at some point, but it's a massive undertaking.