Why is a send-only folder ever out-of-sync?

This behaviour is confusing. It’s not “Out of sync” because it is Send Only. The only folder that can be “Out of sync” is receiving folder on receiving machine.

Sending Only folder doesn’t even wait to sync, that is reserved only for receiving folder.

I think this confusion should be solved somehow, displaying red button “Override changes” when everything is actually alright is absolutely confusing.

That’s one way to look at the “out of sync” part. The other, which the project/UI is taking, is that other devices have newer files, so it is not in sync with them. You just configured it not to act on that through the “send-only” folder type, presumable because it shouldn’t happen. It did happen though → “out of sync”.

The “Override changes” button claim I don’t get, that seems like a misunderstanding: The effect of that operation is to try to get the remote devices to again have exactly the same files as the local/send-only one. Regardless of whether you consider “out-of-sync” a reasonable status or not, that operation stays applicable/useful.

My line of reasoning is that I don’t care if other devices having other files which are not synchronized with send-only device. But I get your line of reasoning too, it’s only that the terminology here and informativeness could be a bit better. So at least don’t use “out-of-sync” term which implies something bad happened, but from the perspective of host machine where it is displayed nothing is that bad if there are some in my case system hidden files are placed in folder on remote device. And “override changes” sounds like some manually forced intervention where you actually lose some information, but it is actually not the case.

Just my honest view, Syncthing is great overall, but this one could be handled better, just a different terminology and informativeness would help with existing logic.

I see the point about out-of-sync. I just believe that introducing more folder states will also add to confusion. And whatever alternative term we’d use would likely be misinterpretable in some other way.

As for “override” - sure, that can be misunderstood and I’d definitely never claim it’s clear what it does. I doubt anyone will find a word that is clear on it’s own though. The confirmation dialog that pops up when you click it has more information and should explain what is actually happening. If that’s not the case, suggestions how to clarify that info would be very welcome.

I mean, that’s precisely what it is. You lose whatever information was on the other side, overriding it with what was already on the send-only side.

2 Likes

You didn’t lose any information on send-only side because you didn’t expect any new information from the side which is not able to send it to you. So we’re actually overriding change that we weren’t interested into in the first place which is logical nonsense.

You just don’t display that it is out of sync because it actually is not - if your folder is send-only then you don’t care for additional files in remote folders. IDK, this seems like a basic logic to me. Or you write something like “Remote side has additional files”.

As for overriding, the better term would be “Ignore changes on remote side” with ability for them to be ignored for good.

Ignoring is different from undoing or overwriting, but I can see that we just have different viewpoints on what’s happening here, so I’ll not belabor it further.

Nobody has mentioned receive-only folders yet. If you don’t care about files added on the other devices, you can set those to receive-only and none of their local additions will ever be announced anywhere.

Syncthing works by constructing a “global state”, a common view of all involved devices’ information concerning a folder. Each device can add to that, unless it is configured receive-only. A send-only device shows that override button when detecting changes that do not originate from itself. It says what the device will accept from the global state, but cannot prevent others announcing stuff that will contribute to the shared global state. Each device is equal in Syncthing, even a send-only device has no more authority over the global state than any other.

What if the owner of receiving machine didn’t enforce Receiving only on the folder…? I don’t have nothing more to add other than if it’s like this, it brings on the confusion. At least fix the terminology. Thank you for your attention.

I hoped @acolomb 's answer was the solution I was looking for, but unfortunately that makes no difference - I have a send-only folder syncing to a single receive-only recipient, and this still exposes changes on the recipient as out of sync on the sender.