The dreaded conflict between decks pop-up

I actually have the same problem as parasitius. Danika_Dakika seems to understand the problem, but Anon_0000 does not yet, so, to clarify, try these steps:

  1. Make a change to a note type that requires a full upload of the database to synchronize. Danika_Dakika gave the example of adding a card. You should get a popup warning you this this will require a full upload of the database.
  2. Sync.
  3. On another device, sync.
  4. On the second device, you’ll see the popup parasitius is talking about, mentioning a conflict between the local device and AnkiWeb.

Notably, this happens even if you follow best practices of syncing every time you open and close Anki on every device. I suppose this happens because the database format has changed, so Anki can’t follow its normal sync algorithm.

What parasitius appears to be pointing out – and I would agree – is that it should be fairly clear what the user hopes to have happen in this case. If the user changed the database format and requested a sync, they almost certainly want the newer database to take priority, and they’re probably prepared for the newer database to wipe out the older database. It seems unlikely that a user with conflicted databases would want to keep the older and delete the newer.

While I would be completely on board with changing the conflict popup to suggest that the user probably wants the newer database, I don’t mean to try to force any ideals onto anyone. Personally, I would be quite happy if this conflict popup could just let me know the last time each database was modified, so I can make a more informed decision myself. (If it could provide more details about what actually changed, that would be even better, but that seems technically challenging to pull off.)

Only if they did it on purpose. Anki has no way of knowing though, if the user wants Database A or Database B. And deciding on the “date changed” metadata would probably cause trouble for several users.

I had the exact thing you are describing yesterday, because I was updating my card templates to finally properly support dark theme and caused a conflict as a result. Anki asked me if I want to keep Ankiweb or the local collection, which is expected to me. I might have imported / changed something that I want to trash, thus downloading from ankiweb.

AnkiDroid asked me if I want to keep Ankiweb or the local collection as well, which, again, makes sense in my book. The fact alone that there is a newer collection (with conflicts) doesn’t make that collection somehow more desireable to keep; it might, like in my case yesterday. But there is no way of knowing.

Only if the user knows what they are doing and didn’t accidentally make a big mistake. If they do want to revert to the state from AnkiWeb though, they can easily do that by choosing the appropriate button. Same applies to when they want to keep the local collection.

Essentially my stance on this is this: Anki should never assume the user wants to keep the older or newer database; Anki should provide the user the option to choose for themselves. And that is exactly what is currently happening. Anki won’t do “smart things” that might cause more work and bad user experience to the user.

1 Like

In my opinion, your viewpoint is essentially that Anki should continue to be software meant only for computer programmers or highly technical people and not the general public.

Having to even make guesses or speculating about how the programmatic mechanics working behind the scenes when doing something AS TRIVIAL as I described in my Sept 17 post is a perfect of an example where the message that comes up is shocking and unexpected for any normal Joe citizen.

Sept 17 is my best example: you could fix that use case for Joe Public and me and STILL continue to accommodate expert users (like you @Anon_0000 ) by making and retaining more back-ups including in the cloud (the deck itself is fairly trivial in size, it is only the media that is hundreds of megs) and allowing an exceedingly simply one click revert to prior versions option.

As a side note:

I don’t understand, personally, why so many expert users are making changes to their decks that they want to revert. I honestly cannot remember even doing that ONCE in all the years of using Anki. I’m editing cards far more often than templates, but it is trivial edits to cards that constantly trigger the pop-up message.

I agree. This has been a big issue for AnkiHub for a few years (tons of support requests) until the add-on started eliminating the dialog (effectively choosing “Upload” for the user silently) in cases where the conflict is caused by the add-on itself. While this can still result in data loss if the user’s devices are not in sync, we got no such complaints for two years since introducing this. I suspect this works for the average user, especially if a warning is shown before making the original action.

Fundamentally, the problem has to be solved/mitigated on AnkiWeb’s side. I think that’s why it’s taking too long to make improvements here.

2 Likes

Personally, I can understand the dialog and choose the right option.

But, I can easily understand why a novice user can have difficulty in making the correct decision. In most of the cases, the user will want to preserve the newer collection. So, the suggestion made by @parasitius makes sense. Anki should highlight it as the main option and make the other option much less prominent (but still available) so that the power users still have the choice but choosing the correct option is effortless for novice users.

Basically, we have to take a middle path between completely leaving it to the user to choose and forcing one choice. Anki should be like “this is probably what you want to choose, but you can still choose the other option if you know what you are doing”.

This suggestion doesn’t hold for the case where the user deliberately chooses “On next sync, force changes in one direction”, though.

And that’s fine, I understand that. As I said, I don’t mean to try to force any ideals onto anyone, and if there are people with legitimate use cases for keeping the older database, then I certainly don’t mean to create more work for them. Hence:

If Anki could let the user know which is newer and which is older, that should help people make a more informed decision in all cases. If they mean to revert a bad change, they can choose the older one. If they mean to keep the changes they made, they can choose the newer one.

2 Likes