Een onleesbare git-wachtrij telt als leeg #2723
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#2723
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
Raakt de opgeslagen wachtende commit beschadigd, bijvoorbeeld afgekapt JSON na een crash midden in het schrijven, dan ziet een synchronisatie hem niet. De badge staat op 0. Een stille sync stopt met niets in de wachtrij. De werkkopie met de tekst blijft onaangeroerd op schijf. Het werk komt nooit op de forge, en er is geen foutmelding.
Bewijs
lib/services/git/outbox.dartforDeck: een decodefout logt en geeftnull.pendingslaatnullover.isEmptyloopt viapending.DraftStoreCorrupt).Er is geen test die een kapotte outbox-sleutel laat staan en eist dat flush niet “niets te synchroniseren” zegt.
Voorstel
Een onleesbare sleutel als fout teruggeven, dezelfde vorm als
DraftStoreCorrupt.pendingenisEmptytellen die niet als afwezig. Flush meldt de deckmap en laat de sleutel staan.Regressietest: voorkeuren met
git_outbox::<deck>op een afgekapt{, daarna ispendingniet leeg en krijgt flush de status mislukt, zonder de werkkopie te wissen.Het bestandsformaat verandert niet.