Call to deprecate "external versioning" and "ignore deletes"

Approximately not a single human being uses these features:

“Ignore deletes” is an ugly hack with odd side effects and dire warnings on enabling it.

“External versioning” is an at best halfway useful feature with an odd setup that is surprisingly difficult to use correctly on Windows.

Can I remove them please? If there is a genuine use case for either of these we might be better served to figure out what that is and support it properly somehow.

  • Go ahead, I don’t care.
  • Nooo! Let me explain below how I use this…

0 voters

Using external versioner for some owncloud integration, so voting for “Noooo!”, see https://github.com/alex2108/syncthing-owncloud, I don’t use ignore deletes so for that I would say “I don’t care”:

…while I personally don’t use any of these features, I’d like to shed a light / have a light shed on the statistics:

Both of these features, in my understanding, are quite unique use-cases, in the sense, that even if I were to use this feature, I’d probably use in on ONE of in my case roughly ten devices connected to the cluster. ignore-delete is useful for mobile-pictures, that you want to clean up once in a while. external versioning… well… I think I never heard of anyone using it, but the one use-case I could think of would be some clever way of snapshotting my folder, say by rsync-hardlinking or btrfs/zfs snapshots - that’d probably be only used on a server. Since we only get integer percentages from data.syncthing.net (is 0%=0.4% or more like 0%=0.04% ?) here and they are on a device-count basis, its actual user base might be much larger. The median cluster size is 3, the average is probably higher, so 0.4% of the devices might very well be 3% of the users.

I’d really like to hear someone using the external versioning scheme though. It’s not like the forum is full of good examples that people shared in an open-source spirit. :smiley:

EDIT: @Alex speaking of the devil :imp:

You’re right. Here’s a version with less rounding.

That’s a nonzero number of users.

You’d think so, but the external versioner is sadly quite ill suited for this as it runs for each file, and before we’ve made the replacement. If we’re to keep it around I would like to make it more generally useful so that it could (for example) do that and also do a git commit after replacing a file etc.

The reason external versioner is discussed is due to one of the outstanding PR’s by @lkwg82 which would need to change the API.

I think we don’t need to drop it, but just need to disable when migrating to 0.14 and push a persistent notification saying that the API has changed and the user needs to reenable it making sure it satisfies the new API.

Ignore deletes is quite useful for mobile backups.

1 Like

I use this happily. :slight_smile:

I think this is an undersold feature. Many people asked for this to sync the phone pictures and keep them in the cloud. So i guess more people would like to use it if it would be more transparent for them. :). I was somehow expecting this discussion sooner or later.

3 Likes

I remembered the ticket(s):

1 Like

Fair enough, but a good deal of people seem to find it useful as the…

…shows. As I said, 0.71 percent of the devices does definitely not correspond to 0.71 percent of users. Comparing the perecentage of this to, say, “Relaying, other relays” leads to nothing, because the latter would most likely be used by a complete cluster…

About external file versioning:

…when I read this post I first searched for a ticket or PR that I remembered reading, about someone wanting a trigger on successful syncs (syncs of what, I don’t remember… files? Repos? Devices?), but couldn’t find it.

In the end, such a feature could as well be used for a “ignore delete” functionality, by invoking a script after successful transfer of new files, moving them elsewhere…

So in the end- I guess the functionality of either should be kept, but it could evolve into a prettier form…

hmmm. I understand it, however sounds a bit scarry to keep old features also when they turn irrelevant. I think we should draw a rough line, what to keep and what to reevaluate. My guess is all below 1% is at risk to be removed. Else we can not experiment with new features, because with a growing user base there will be always one using it and we can not remove it.

The “ignore deletes” is absolutly worth investing time in as already mentioned above.

I think it’s clear from here that there is not a unanimous ok for removal, so we won’t do that at the moment. :slight_smile:

I want to refactor the external versioning though, to make it more useful and hopefully easier to use.

One of my uses of syncthing is to get copies of the photos I take on my phone onto various computers. I have the phone as the folder master, and sync the folder containing the photos to the computers.

But… my phone doesn’t have infinite capacity. So every so often, I need to delete a whole load of photos from my phone. But when I do so, I don’t want the copies deleted elsewhere.

So “ignore deletes” is important for me.

It might be that it doesn’t get used much because it’s quite hard to find in the settings…

1 Like