Selective Sync?

If you read the threads it’s not 1 pattern per directory. If I want to only sync a/b/c/d, that requires 2 patterns per directory level.

You can take a crack at the branch that I’ve linked. Though I suggest you first read through it to understand.

Yeah, this still lives in a branch on my side as well, it just needs some love and other things came between…

Jorgen, Apologies if I missed it in here and its already been looked into, but what abotu reversing the logic a little?

Add a .stinclude file which if it exists will only synchronize folders or pattern matches in there.

For instance, I am trying to cut the cord from my TV but my wife has an addiction to a Soap Opera she watches daily. I have a friend who is recording the show from his OTA (I have no line of sight) on his Windows Media Center box. Media center stores ALL show content in a single folder.

So I was hoping to setup a ST job to synchronize JUST the “Soap Name*.wtv” from his machine to mine, along with the IgnoreDelete option. Then he tells Media Center to only store like 5 episodes max, and Media Center auto deletes anything older than that. But by then, I should have synchronized it to my server at home and even if he deletes it, I keep a copy until my wife watches it and deletes the local copy.

The problem with all this is my friend has like 20 shows he records, and with ST there is no easy way to ONLY synchronize 1 show I want.

Why?

Ignore everything (*)
Exclude X from ignores (!soap**)
1 Like

Just as a motivator: I’m really looking forward to selective sync! It would be awesome to just setup a single folder (with all my files in subfolders) between three computers and choose from the GUI which subfolders I need on individual computers. I the need for another folder arises later, I can just check it. No need for setting up another folder on both ends.

1 Like

Any chances we’ll see GUI for folder-level ignores? (Similar to Dropbox selective sync?)

Would help a lot for normal users (me:) who are confused by the text ignore patterns.

1 Like

Hi, for me it is really important that have something like Dropbox:

  • Selective synchronize folders and subfolders
  • Be able to download and share individual files or folders.
  • Web interface and applications let do it.

Once it is possible, I will really move from Dropbox and Seafile.

Thanks in advance and congratulations for this great app.

1 Like

So perhaps we need to combine the 2 options people are discussing.

  1. Add a feature to SyncThing called “Sync on Demand” that you flag on the SOURCE.
  2. When a Client/Destination sees this flag, it immediately sets up an Ignore everything (*) rule.
  3. When the Client/Destination (hopefully using a GUI) flags a file/folder for download/sync, it adds the “Exclude X from ignores (!soap**)” (Taken from Audrius response to me)

Seems like this uses the mechanisms already in place as much as possible and technically number 1 and 2 could be optional if you have a way for the client to quickly add the ignore flags.

3 Likes
// DON't ignore the following dirs (i.e. DO sync them):
!/DCIM
!/TitaniumBackup

// Ignore all the rest
*

this method like white-list … also works for me

I also have a thousand sub-folder in a big folder , but I always update some of these sub-folders one time…

so I just need to update the stignore, and then I click rescan , it’s done…

1 Like

I think https://github.com/burkemw3/syncthingfuse really could be used in many of the cases people need “selective sync”. It exposes all the files in a normal Syncthing folder to the SyncthingFUSE user, but this can choose which files he will get. By default is none. Also the SyncthingFUSE user cannot modify the Syncthing user’s folder, so it’s a kind of file browser and on-demand file downloader on top of Syncthing.

4 Likes

Any news on this? I would really appreciate this feature. I’m using ignore patterns, but this text-based solution really looks out-of-place in an otherwise user friendly UI.

I also use file-level excludes sometimes. Maybe it can be done on demand on specific folders, rather than by generating the entire resource tree.

If I had more time I would definitely try to take the branch and complete it. What is its status anyway? Still half-done, or somehow broken by subsequent updates?

2 Likes

A GUI for selective sync (even if just for whole folders) is something that I too really wish for. I have some non-tech friends using syncthing and this would really help.

2 Likes

I know this is an old post, but to get people interested I will re-ignite.

This is the only place that I have seen a genuine attempt at a solution for this GitHub Issue 5132.

It looks like they are very close to merging into the master branch, and then it should be available soon after. There are a few considerations still to close out before we can all get there though.

1 Like

I don’t think it’s close at all, as we can’t agree what the right way to do this is, which is the worst type of problem.

1 Like

I agree and this is so unfortunate! I bet that there are tons of Resilio Sync users out there just waiting to have Selective Sync available in Syncthing. On the other hand this does not seem to be a pressing issue it seems.

For server-to-server sync, I’m going to try migrating from Unison to Syncthing due to its newly added ability to sync file owner and group by following the parent directory (great new feature and not often seen).

For client device syncing, I would love to see two things:

  1. A more GUI-based way of selecting folders to include/exclude would be nice, as discussed in other threads.

  2. In addition to including/excluding specific folders, a caching virtual filesystem (e.g., using FUSE on Linux) would be a really nice client feature. This would allow all of your files to be listed and downloaded/synced on-demand, while the most recently accessed ones remain synced on your system in a cache of user-specified size. Some cloud services now provide this feature (pCloud for example), and it is now being worked into the sync clients for ownCloud and Nextcloud. The project SyncthingFUSE, referenced in a post above, was an attempt at this, but the development never was finished, and it’s now far out of date. I’ve been looking over the source code for that and might consider trying to spend some time on it, but it is something that would probably be much better included in the existing client.

1 Like

Maybe I missed an important flaw, but why not use .gitignore logic?

  • It’s well defined and well documented.
  • It allows for the complex logic of defaults through folder-specific files, each of which can be selectively synced across devices.

I’d really like to use such features.

Tell your grandma how to use .gitignore.

Sorry for these completely irrelevant 2 cents:

If using Syncthing with or without selective sync fails at understanding ignore patterns - kudos to those grandmas!

3 Likes

While I’m not personally a grandmother, I’m not a professional developer either. But I’d still have a crack at making a gui for editing gitignore files, or integrating the options into a file system viewer right-click options.

If however operations like moving a folder are going to break everything (like the current system), I wouldn’t bother. I’d tell my grandma to use Dropbox instead.