Offline git-sync commit een dode mem-afbeelding als succes #2724
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
release-blocker
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#2724
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Wat er mis is
Op web, en op desktop zonder native git, zegt een offline opslag dat ook nieuwe afbeeldingen meegaan zodra er weer verbinding is. Die bytes staan alleen in het geheugen. Tabblad sluiten of een herlaad veegt ze weg. De wachtrij houdt de tekst met
mem:-paden. De volgende synchronisatie commit dat, meldt gesynchroniseerd, en haalt de wachtrij leeg. De plaatjes zijn dan een dode verwijzing, zonder tweede kans.Het serializer-commentaar beschrijft die afloop al als een placeholder. De melding aan de gebruiker belooft het tegendeel.
Bewijs
lib/services/git/offline_queue.dartqueueDeckSave: de werkkopie bewaart het deck ongepoold, metmem:-verwijzingen. De bytes worden pas bij het legen gepoold, en alleen als ze er nog zijn.poolPendingDeck: een ontbrekende blob laat het pad staan.test/git_offline_queue_test.dartpoolt terwijl de bytes nog in de store staan.Voorstel
Vóór de commit weigeren als een
mem:-pad geen bytes meer heeft: wachtrij laten staan, status mislukt, en de waarschuwing tonen die de deckbouw al maakt. De bytes horen bij het parkeren in de werkkopie, niet pas bij het legen.Regressietest: een wachtrij met een
mem:-plaatje, de byte-store leegmaken, daarna geen commit, de outbox blijft, en de uitkomst noemt het pad.Het bestandsformaat verandert niet. Geen nieuwe opslag van beeldbytes buiten de werkkopie die de gebruiker al heeft.