Anki/rslib/src
Damien Elmes b73cb15888 Take another approach to dealing with conflicting flattened keys
The approach in #2542 unfortunately introduced a regression, as whilst
it ensured that duplicate keys are removed when downgrading, it no longer
prevented the duplicates from being removed when converting to a legacy
Schema11 object. This resulted in things like backend.get_notetype_legacy()
returning duplicate keys, and could break syncing:

https://forums.ankiweb.net/t/windows-desktop-sync-error/33128

As syncing and schema11 object usage is quite common compared to downgrading,
the extra Value deserialization seemed a bit expensive, so I've switched
back to explicitly removing the problem keys. To ensure we don't forget to
add new keys in the future, I've added some new tests that should alert us
whenever a newly-added key is missing from the reserved list.
2023-08-15 11:25:53 +10:00
..
ankidroid Refactor service generation (#2552) 2023-06-19 15:33:40 +10:00
backend Fix lack of progress/error when importing a .colpkg 2023-06-22 09:46:09 +10:00
card Make some more fields/methods public 2023-06-20 21:59:49 +10:00
card_rendering Rework RenderCardOutput::question/answer 2023-06-27 00:37:41 +10:00
collection Fix progress not updating after one-way sync 2023-07-02 15:47:09 +10:00
config Make some more fields/methods public 2023-06-20 21:59:49 +10:00
deckconfig Take another approach to dealing with conflicting flattened keys 2023-08-15 11:25:53 +10:00
decks Take another approach to dealing with conflicting flattened keys 2023-08-15 11:25:53 +10:00
error Report actual error when DbError occurs 2023-06-20 21:58:27 +10:00
i18n Refactor service generation (#2552) 2023-06-19 15:33:40 +10:00
image_occlusion Fix newly-added image occlusion notetype not syncing 2023-07-01 22:10:29 +10:00
import_export Support include_filtered=false, skip_default=true case 2023-08-08 15:34:43 +10:00
media Extract inline images as part of media check 2023-07-31 12:23:16 +10:00
notes Make some more fields/methods public 2023-06-20 21:59:49 +10:00
notetype Take another approach to dealing with conflicting flattened keys 2023-08-15 11:25:53 +10:00
revlog Bump Rust version 2023-03-31 14:11:33 +10:00
scheduler Improve presentation of importing results (#2568) 2023-08-02 20:29:44 +10:00
search Refactor service generation (#2552) 2023-06-19 15:33:40 +10:00
stats Refactor service generation (#2552) 2023-06-19 15:33:40 +10:00
storage Take another approach to dealing with conflicting flattened keys 2023-08-15 11:25:53 +10:00
sync Update Rust and Python deps (#2567) 2023-07-01 18:26:43 +10:00
tags Refactor service generation (#2552) 2023-06-19 15:33:40 +10:00
undo Fix invalid ids on db check (#2445) 2023-03-19 10:58:35 +10:00
adding.rs Default to current deck in csv import if settings allow it (#2527) 2023-05-31 13:47:12 +10:00
browser_table.rs Rework RenderCardOutput::question/answer 2023-06-27 00:37:41 +10:00
cloze.rs Rework RenderCardOutput::question/answer 2023-06-27 00:37:41 +10:00
dbcheck.rs Refactor progress handling (#2549) 2023-06-19 13:48:32 +10:00
findreplace.rs Fix invalid ids on db check (#2445) 2023-03-19 10:58:35 +10:00
latex.rs Switch Rust import style (#2330) 2023-01-18 21:39:55 +10:00
lib.rs Refactor service generation (#2552) 2023-06-19 15:33:40 +10:00
links.rs Refactor service generation (#2552) 2023-06-19 15:33:40 +10:00
log.rs Update Rust deps (#2332) 2023-01-18 22:24:29 +10:00
markdown.rs Switch Rust import style (#2330) 2023-01-18 21:39:55 +10:00
ops.rs Feature image occlusion (#2367) 2023-03-29 12:33:19 +10:00
preferences.rs Move generated protobuf into anki_proto 2023-06-12 15:47:51 +10:00
prelude.rs Move generated protobuf into anki_proto 2023-06-12 15:47:51 +10:00
progress.rs Refactor progress handling (#2549) 2023-06-19 13:48:32 +10:00
serde.rs Take another approach to dealing with conflicting flattened keys 2023-08-15 11:25:53 +10:00
services.rs Refactor service generation (#2552) 2023-06-19 15:33:40 +10:00
template.rs Tolerate {{FrontSide}} on the front side 2023-07-13 21:39:16 +10:00
template_filters.rs Rework RenderCardOutput::question/answer 2023-06-27 00:37:41 +10:00
tests.rs Add a .with_desktop_media_paths() helper 2023-05-18 11:02:02 +10:00
text.rs percent-encoding -> percent-encoding-iri 2023-05-29 14:46:02 +10:00
timestamp.rs Add time of date to browser date columns 2023-03-26 14:49:49 +10:00
typeanswer.rs Fix excess missed markers in non-Latin text 2023-02-10 15:11:36 +10:00
types.rs update scheduling ops 2021-04-06 16:38:42 +10:00
version.rs Rework syncing code, and replace local sync server (#2329) 2023-01-18 12:43:46 +10:00