feat(ink): streekidentiteit en een grafsteen bij wissen (#541) #748
No reviewers
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck!748
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/ink-naar-git-541"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
De formaathelft van de ink-merge — de eerste stap in de volgorde die D7 voorschrijft: eerst het annotatieformaat, dan de driver, dan het schrijfpad.
Elke streek draagt nu een id. De merge vereent de streken van twee kanten, en een unie moet weten wélke streken dezelfde zijn. Zonder identiteit is het enige houvast de puntenlijst, en verenigen twee kopieën van dezelfde tekening tot een dubbel getrokken lijn.
Wissen zet een grafsteen in plaats van weg te gooien. Hier is de intuïtie fout. Weggooien is wat je verwacht, en het is precies verkeerd zodra het bestand gemerged wordt: de andere kant heeft de streek nog, de unie brengt hem terug, en de gebruiker zág hem verdwijnen. Een verwijdering die terugkomt is erger dan een die niet werkt. De tekenaar slaat een gemarkeerde streek over, dus op het scherm verandert er niets.
Versie 2, met een leespad. Een sidecar van versie 1 leest door en krijgt verse ids. Eén eerlijk gevolg staat in de code: twee kopieën van zon oud bestand krijgen verschillende ids en verenigen tot dubbele lijnen. Zichtbaar en herstelbaar — beter dan stil één kant laten vallen.
Een test die dat verdiende viel om.
sidecar_version_testnoemde versie 2 "uit de toekomst"; dat is nu de huidige. De toetsen staan opCodec.version + 1, zodat ze bij de volgende formaatwijziging niet opnieuw stilletjes de verkeerde vraag stellen.De uniemergeregel staat als eigenschap in de nieuwe tests — inclusief een gewiste streek komt niet terug — zodat het formaat niet kan wegdrijven van wat de driver straks nodig heeft.
8 nieuwe tests;
make checkgroen: 6007 tests.Nog open in #541: de driver
merge=ocideck-ink(die ook in de app reproduceerbaar moet zijn), het schrijfpad naar de repo, en het zegel — dat wacht op de keuze uit D13.