What is the purpose of "Override Changes" button?


Also what does “master folder” mean given the description was “Files are protected from changes made on other devices, but changes made on this device will be sent to the rest of the cluster”?

Doesn’t that indicate that a “master folder” function is to mirror all files from the originator (primary sender) to the inherent receiving devices?

So why is there a need to click the button (override changes)? What changes are being created here that require an override for them?

I am creating a SHA3 hash checksum list of all files on the sending device and then comparing with the receiving devices. Without clicking the button marked “override changes” the files are all present and accounted for. Before, the one file named update.ver was not updating on the receiving devices. I have no idea why it is working now when before it was not.

Is Syncthing consist in synchronizing files or was this an issue with the receiving devices regarding file permissions (not deleting)? But strange as all the other 89 files had no issue. How is Syncthing judging which files to update from the master folder to the receiving devices?

What is the differences of the Syncthing terms for:

No File Versioning Simple File Versioning Staggered File Versioning

So what option above best fits the need to mirror from the originating device (master folder) as the sender to inherent (direct) receiving devices an exact copy of files that get updates regularly with the same file names, without archiving old copies of files?

The other two options (Simple File Versioning and Staggered File Versioning) mention the need to archive older files, which there is no need as it would only add to the confusion of using the most up to date versions.

Thanks in advance for any clarification on this matter.

How to update the global state with my folder's state?
(Audrius Butkevicius) #2

Sorry but I just get lost among all the text here.

Master folder means do not accept any changes from anyone.

Each file and directory is version, and each device advertises the version of the file it has. By default, master folder means that the version will stay the same, always as it does not accept updates (unless modified by the master node itself).

Now if someone in the cluster modifies a file, the global version (which all nodes see) gets incremented, causing the master to become out of sync, and causing all non-master nodes to download the newly modified file from the modifier.

Override changes tells the master to take the global version of all files, increment it by one, and advertise it to everyone, causing everyone in the cluster to download all the files the master has (as this is now the newest version).

SHA3 will only give you part of the answer. We track permissions, mtimes, internal flag changes (which might not be readable by you externally) part of the version, hence you are getting only part of the answer.

Versioning settings have explanations to them as you select them. These are meant for versioning as it’s explained, which involves archiving files before modifying them.

(Robson Sobral) #3

May this button function be a little clear? “override changes” don’t say where this changes are. Maybe “override remote changes”? I don’t know which phrase to use exactly.

(Audrius Butkevicius) #4

Yeah the whole thing needs to be documented:

Feel free to help out.

Change from folder "send only" to "send and receive" deletes files
(Robson Sobral) #5

You’re doing a great job on the app and it’s really good to see that you, developers, care about UX.

I just don’t know how much I can help on docs, because… Well, you know how bad my English is.

First, I think the button needs a clear explanation of its function:

  • Override and propagate changes
  • Override remote changes
  • Propagate changes and override
  • Propagate changes and a prompt This will override any changes made on remote nodes. Are you sure?

I still didn’t have the opportunity to see what happens on the interface of remote nodes. I gonna do some tests.

Would the "override changes" button option mean the following condition: 

That the master folder sends out files to all receiving peer nodes (devices), for which any of them may modify the files, but requires the master folder to approve of only the most recent changes or is that all of the changes made by the receiving peer nodes to be accepted by the master node for redistribution, by applying the override change button?

The “override changes” button is confusing, because I had setup only two devices, one as master and the other as slave (receiving peer node) and the “override changes” button become ACTIVE even though the slave device didn’t make any changes, no modifications to any of the synchronized files.

The files all had the same names, the same sizes, the same content inside them. However, in all fairness, Syncthing didn’t claim all the files were different versions, but rather only one file called update.ver! Why the 1 file out of 90 files synchronized?

I tried different methods to update the master folder, so the slave device (receiving peer node) is without experiencing any issues of versions. The solution seemed at first to never update the same named file as before.

So it seems the “override changes” button is a result of experiencing different versions. Why it is needed at all? Why shouldn’t the receiving peers pass on or rely only the latest version automatically?

Example, if you have 10 peers (1 master and 9 slave computing devices), it should be expected that if only the master folder is online all other peers obtain the same file versions.

However, when the master folder is offline, and only a few of the peers are online, then they should share between them only the most recent version of files, for whomever has the most recent file versions. As more peers come online, they all look for the latest and newest file versions between them, until finally the master folder comes online to update the latest file versions, right?

So what I am getting to is why is there a need for the “override changes” button in the first place? Unless the method isn’t AS written above? Then, it seems the method is broken for the synchronization of the latest file versions among the peers with each other?

However, this assumes the goal or main purpose is to mirror the files from the master folder. But, maybe the developer intended for collaboration of files, instead?

If that is the case, then the method must be designed differently than mirroring. As each receiving peer node might wish to modify the document with new information to redistribute amongst the group.

So which method is Syncthing designed to do, mirror or collaboration?

Can it be made for both methods, by selecting a button?

(Audrius Butkevicius) #7

I’ve explained exactly how it works, what the button does, and why it’s needed. I don’t understand what you don’t understand, because to me it just seems you are asking the same questions again which I have already answered

I have also explained why update.ver was out of sync. It seems that you haven’t even read my answer.

Also, if you could keep your questions short, organize them in a set of points rather just a big blob of text which somewhere contains some questions and not repeat them multiple times, you are more likely to get answers.

The main purpose of master folder is a read only folder, which never accepts updates from anyone but which can still participate in the exchange with other nodes, that is all it is. Nothing to do with mirror whatever you are talking about. Syncthing without master folder setting enabled on any node is meant for collaboration.

(system) #8