This post is rather prompted by conversation in issue #5615, but my thoughts are really only tangential to the topic of said issue, so they go here instead of there.
There’s obviously some demand for more straitforward ignore patterns syncing. @AudriusButkevicius makes a perfectly valid point in the aforementioned issue: there is a mechanism in place, namely
.stignore. However, as far as I’m concerned, this mechanism lacks one crucial feature.
What I suggest is have
.stignore autogenerated upon folder setup, and have it have one line by default:
Now, this is currently not possible, as
#include of a non-existing file makes Syncthing throw up, and I’ve seen a combination of SyncTrayzor and Syncthing 1.0.1 bring a Win7 system to its knees with CPU usage under this very condition (unfortunately, I no longer have access to that system to debug and investigate, so no bug report pending here). So the first step would be to make less of a deal out of non-existing file #includes (IMO these deserve a line in the log and proceeding, not halting the folder).
Granted, it makes no sense to even attempt to implement such changes if there’s some actual WIP on issue 2491 that I’m not aware of.
But just in case there isn’t, I would like to go about implementing these two changes:
#include foogenerate a log warning, not a current folder-stop error in case
foodoes not exist.
.stignoregenerated upon new folder creation or adding with the default line of
What good it will do:
- The default behaviout doesn’t change. As long as no
.stglobalignoreexists, the autogenerated
.stignoreis as good as empty, which is the curreng behaviour.
- If a folder has
.stglobalignore, those ignore patterns will automatically propagate to new devices as soon as this file is synced. Perhaps, some files that are supposed to be ignored will get synced before that, but that’s current behaviour anyway, so no regression here.
What bad it will do:
- People who want something like this will have it and be less interested in getting some work on New Ignore System done, which may further delay New Ignore System.
- Probably something else I couldn’t think of.
The last sentence above is really why I’m posting this before rushing to implement. What do I miss? Is this a dumb idea generally? Obviously, there’s something bad in it, there should be a reason no one has done it yet, but what is it?