Override (or Delete) Local Changes - Not Revert Local Changes

Dear Support:

I hate to be pedantic, but every time I see “Revert Local Changes”, I think what a poorly written command. Bad syntax, bad grammar, bad English - and confusing. It’s a missed opportunity! It always makes me hesitate for a split second whenever I see it, even after almost a year of using Syncthing. I can imagine people new to Syncthing; they must be scratching their heads in bewilderment as to what “Revert Local Changes” means. Now, the good news is that when you click on Revert Local Changes, the explanation is absolutely top-notch, pitch-perfect. Nice job!! So why the inartfully worded “Revert Local Changes”? Can I make a suggestion: Change “Revert Local Changes” to “Override Local Changes” or “Delete Local Changes”. Both “override” and “delete” appear prominently in the explanation when you click thru. And they are much clearer and truer in meaning. Trust me, you will be helping other novices get the hang of Syncthing faster. And your mother will thank you! Best regards (and Happy Holidays) Robert

3 Likes

I completely disagree. Revert is the perfect word that succinctly describes what the button does.

Override means what? Push the local changes back to the server? Or pull the original from the server? Override what?

Delete local changes? What if the local change was a delete? How do I delete the delete?

Revert never confused me. I immediately knew what the intention was and it does exactly what it says it does.

Mike, reasonable people can disagree, and I respect your right to hold a contrary opinion.

I would, however, make three points in reply:

  1. As you can see from the definition of Revert that you provided, Revert is not a transitive verb. In proper usage, Revert must ALWAYS be followed by the preposition “to”. Which is my point: Revert Local Changes is simply bad grammar, bad syntax and poor English. Indeed, as the example in the definition shows, one doesn’t “revert” his native language - one “reverts to” his native language. Likewise you don’t “Revert Local Changes”; to be correct, it should read “Revert to Local Changes”.

  2. However, therein lies the problem - and the source of my confusion. “Revert to Local Changes” is completely at odds with what we are doing when we click on the command. Again, per the definition of Revert supplied by you, Revert (or more properly “Revert to”) means to “return to” a previous state. What should follow Revert (to), therefore, is not Local Changes but the File Content of Your Other Devices which is, in fact, the previous state you are reverting to when you click on the command.

  3. Indeed, go ahead and click on Revert Local Changes and what does it say: “WARNING. The Folder content on this device will be OVERWRITTEN to become identical with other devices. Files newly added here will be DELETED.” That, my friend, is the correct way of saying this! Which is why I would argue that a much more precise descriptor of the command would be “Override Local Changes” or “Delete Local Changes” (despite your opposition to the terms “override” and “delete”). Or if you absolutely must use the term Revert, then “Revert to Other Devices’ File Content” which is both grammatically correct and properly descriptive of the process. Best regards Robert

Maybe “undo” or “roll back” is the word we’re looking for. The current usage is common in computer science, but perhaps incorrect as traditional English.

NAME
       git-revert - Revert some existing commits

As Jakob has mentioned above, I think this may be yet another example of “programming jargon” vs your standard language used by everyone else.

There are some other, similar cases, e.g. the word “cluster” (meaning a set of devices), used in at least one place in the GUI, which is completely fine from a programmer’s point of view, but it sounds weird for the average user.

Hi Guys:

Jakob’s “undo” or “roll back” are perfect words for this!! Brilliant, really.

And to your point, if it were just that Revert Local Changes looks weird (or appears overly technical) to non-technical-minded users like myself, I wouldn’t have bothered putting up this post.

The reason for my post is that that the term Revert Local Changes is wrong. FULL STOP. We are not reverting to Local Changes - we are doing the EXACT OPPOSITE! To use Jakob’s excellent choice of words, we are rolling back the Local Changes. Put another way, we are undoing the Local Changes.

My personal favorite is probably Delete Local Changes. Everyone knows what “Delete” means and the finality it implies. But as I said, Jakob’s “undo” or “roll back” are excellent choices as well. Robert

For the fun of it, I entered the following question into Perplexity AI:

Syncthing - why do they call the command Revert Local Changes when they mean the exact opposite. Rather than revert to local changes made on the device, they are deleting the local changes on the device, to bring the device in line with your other devices?

Perplexity answered back:

Yes—you’ve noticed one of Syncthing’s most unintuitive bits of wording.

The command “Revert Local Changes” is indeed misleading because, as you said, it doesn’t revert to local changes—it discards them. In Syncthing’s logic, “revert” means “revert this folder’s contents to the global state” (i.e., what other devices report) rather than “revert this folder to how it was locally before.”

Here’s what’s happening conceptually:

  • “Global state” = what your other Syncthing devices agree the folder should look like.

  • “Local changes” = files modified or added only on the current device and not yet synced to others.

  • “Revert Local Changes” = throw away those unshared local modifications and restore files to match the global state.

So yes—the command effectively deletes or overwrites local edits, making the folder conform again to the cluster’s shared version.

This terminology likely comes from developer-facing language where “revert” implies “revert divergence” rather than “undo local editing.” Unfortunately, it confuses ordinary users because “revert” intuitively sounds like undoing a remote change, not deleting your own work.

Would you like a brief suggestion for user-friendly wording (e.g., what Syncthing should have called it)?

(Robert) Yes - please.

A clearer term would definitely reduce confusion. Here are a few alternatives that better reflect what the command actually does:

  • “Discard Local Changes” – the plainest and most accurate description.

  • “Restore from Other Devices” – emphasizes that it retrieves the version from peers.

  • “Sync to Global State” – sounds technical but matches Syncthing’s internal logic.

  • “Reset to Shared Version” – balances clarity for both technical and non-technical users.

If Syncthing used wording like “Discard Local Changes,” users would immediately understand that pressing it will delete unsynced local edits rather than saving them.

Well, the AI will tell you what you want to hear based on the phrasing of your query. Here’s another take, which I post only to posit that invoking an AI answer as some sort of authoritative source is disingenuous and something that annoys me in general.


Is there anything wrong with using the word “Revert” in “Revert local changes” to mean undo or rollback, as the word is also used in for example several version control systems?

:record_button: No, there’s nothing wrong with using “Revert” in “Revert local changes” - it’s perfectly appropriate and widely understood terminology.

The word “revert” means to return to a previous state, which is exactly what you’re doing when you undo or rollback changes. This usage is:

  1. Standard in version control: Git uses “revert” (though git revert creates a new commit that undoes changes, while git checkout or git restore discards changes), SVN has svn revert, etc.
  2. Common in UI/UX: Many applications use “Revert” for discarding unsaved changes and returning to the last saved state.
  3. Clear and concise: It accurately conveys the action - returning to a previous state by discarding local modifications.
  4. Familiar to developers: Your target audience (people using version control systems) will immediately understand what “Revert local changes” means.

The only potential consideration is that in some contexts, “revert” might have slightly different technical meanings (e.g., Git’s git revert vs. git restore), but in the context of “Revert local changes,” the meaning is unambiguous - you’re discarding uncommitted modifications and returning to the previous state.

This is definitely better than alternatives like “Undo,” “Discard,” or “Reset,” which could be less precise in a version control context.

1 Like

I always understood the word that was missing wasn’t “to”. It was “the”

“Revert the Local Changes”

Still makes sense to me.

Anyway of all the things being discussed lately this one I care about the least. LOL

3 Likes

Mike, hat’s off to you!

Your explanation nailed it. It’s spot on!

Revert (the) Local Changes.

Okay, it tortures the English language a bit.

But now it does make perfect sense!

And you are right again!

This is really much ado about nothing!!

Been fun though. . . .

Happy holidays to you guys.

Robert

I’ve never been a fan of revert on a send only device as it feels misleading. Does it delete the files because it can’t find a reference to them in the database, or does it delete the references within the database because the files are no longer present? On a receive only side I will hit the revert button as I know that it will correct anything that was wrong.

It’s (to me) vague. I have said before that on a send only / receive only setup, the receiving end should be an exact copy of the sending end and if there’s any discrepancies, should automatically handle them rather than throwing a conflict or revert message.

As a non-native speaker, ”Discard local changes” gets my vote. ”Discard” also warns the user that local versions maybe deleted.

2 Likes

Jarno, you are 100% right - I couldn’t agree with you more. “Discard Local Changes” captures the instruction perfectly in succinct and unambiguous language. Discard Local Changes describes exactly the action to be taken in simple, yet precise, language that is readily understandable by everyone, regardless of their technical prowess or English fluency. And, of course, isn’t that EXACTING what you demand in an instruction, especially an instruction as important as this one. One wrong move and you may unwittingly wipe out all your local edits on your devices! Y-I-K-E-S!! You got my support, my friend. Robert