Suggestion: "Folder Master/Override changes" INFO, and ".include/.exception"

re: “Folder Master” and "Override changes" http://docs.syncthing.net/users/foldermaster.html?highlight=override%20changes

Observation:

The “Override changes” before destroying non-master data offers almost no insight as to where or what the differences about to be lost are. Information about the differences and locations should be offered, so at the very least it is easier to inspect the files if necessary. A direct comparison of all devicenames, pathfilenames, datetimestamps, permissions would be ideal.

Suggestion:

Add button “Inspect difference”: which comparatively displays all of the relevant files and their info.

Offer options to do a one-off “Pull” of specific files from the non-master devices to assimilate them into the master folder. Include manual options for backup versioning.

Is it feasible to implement the following?:

.exclude - already implemented

.include - new feature

.exception - new feature - list of files that can exist in a master folder, but be treated as regular global syncs. (.exception is probably not the ideal word)

Rationale:

Folders like music, ebooks, keys are maintained in a master folder on a central server, but some associated info would benefit from the ability to get selectively assimilated into the master data. eg: playlist edits/creation, temporary bookmark data, modifications to keyfiles. etc. Without the ability to “.include” as well as “.exclude” it can be messy or impossible to allocate a folder as Master, and ALSO other parts of the same folder as desirable to propagate normally.

eg: Theoretically I would have /music as a master folder with .ignore set on all playlists, and then have another non-master share on the same /music folder with .include only specifying playlists. This is messy with multiple syncs - so probably an exemption list for master folders would be easier. Where anything listed in the .exemption would be treated as a non-master sync, and propagated normally - back into the master folder AND synced devices.

eg: I generally do not want my devices to alter my keyfiles, so the master version is kept on a central server and only pushed to the devices. But in some circumstances I DO want to edit the keyfiles on a device, and DO want to be able to determine which device the latest version is on and thereby selectively/manually assimilate it into the master folder.

eg: if i read an ebook on my tablet, and it generates automatic bookmarks or notes, i do want the server’s master folder to be able to accept this data and push it to the other devices. Selectively/manually is good. But through .include AND .exclude logic would also be very useful.

Related yet somewhat different:

Gah… Here’s what I’ve said in another thread. Posting here for continuity.

You can??!

I have only ever seen a filename, and knowing only the filename is inadequate.

What I am suggesting is something like a standard file replacement notification dialog:

But with a layout appropriate for comparing numerous versions of the same files.

eg:

device - path           - filename  - filesize - datetimestamp
[ ]  server - ~/pictures     - file1.jpg - 100KiB   - 2015-07-29--00-00-00
[ ]  tablet - /sdcard0/DCIM  - file1.jpg - 100KiB   - 2015-07-29--00-00-00
[X]  phone  - /sdcard0/DCIM  - file1.jpg - 200KiB   - 2015-07-29--00-00-01
  [X] = version to assimilate into Master Folder.
  Other versions will be stored as per backup policy.

An extension to the existing “Out of Sync Items” window: where clicking an entry opens the type of options dialog I describe above.

Or maybe something like:

file1.jpg - Exists as 3 instances - select action:
[A][B][D] device - path           - size   - datetimestamp
[ ][B][ ] server - ~/pictures     - 100KiB - 2015-07-29--00-00-00
[ ][ ][D] tablet - /sdcard0/DCIM  - 100KiB - 2015-07-29--00-00-00
[A][ ][ ] phone  - /sdcard0/DCIM  - 200KiB - 2015-07-29--00-00-01
[A] = Assimilate into Master Folder.
   [B] = Backup as per backup policy.
      [D] = Discard file.

This is an excellent suggestion. I’m having similar dilemmas about the 'Override; button.

1 Like

So I think I now understand what this is about. The exclude bit has inverting:

!dont/ignore/this
* # ignore the rest

The suggestion of exception patterns makes sense The suggestion for conditional overrides on master from within the out of sync dialog makes sense. Having more details in thr out of sync dialog in general makes sense too.

I suggest you raise an issue for each of these on github.