fix(save): waarschuwing bij conflicterende opslag van hetzelfde bestand (#1951) #1974
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!1974
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/twee-vensters-conflict-1951"
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?
Samenvatting
Twee OciDeck-vensters kunnen hetzelfde
.md-bestand allebei openen. Wie het laatst opslaat wint; de andere wijzigingen zijn weg — geen melding, geen bestandslock, geen mtime-vergelijking.Nu vergelijkt
DeckNotifierbij opslaan de mtime van het bestand op schijf met wat bij openen is gezien. Wijkt die af, dan toont de schil een dialoog: overschrijven, herladen of opslaan als. Niet stil overschrijven.Wat er verandert
lib/services/file_service.dart:fileMtimeenfileChangedSince— mtime lezen en vergelijken.lib/state/deck_provider.dart:_fileMtimeveld, opgenomen bij openen (loadDeck), bijgewerkt bij opslaan (_saveToPath,saveAs).fileChangedExternally()enreloadFromDisk()voor de conflict-detectie en herladen.lib/widgets/shell/shell_actions_connections.dart: conflict-check insaveDeckWithDestinationvóór opslaan, met_showLocalConflictDialog(overschrijven / herladen / opslaan als).lib/l10n/translations/: 2 nieuwe strings in 31 talen.test/local_file_conflict_test.dart: 5 tests voor mtime-tracking, conflict-detectie en herladen.Bewaker
Geen formaatwijziging, geen lockfile, geen sidecar — alleen een mtime vergelijken. De webversie heeft geen lokaal bestandssysteem en gaat niet langs dit pad.
Test plan
make checkgroen (11000+ tests, golden suite, alle poorten)make check-secretsschoon (gitleaks + trufflehog)make sastschoon (semgrep, 0 bevindingen)make l10n-checkgroen (31 talen, 2 nieuwe strings)Generated with Devin
c7546359c2d0b5e7df75