Vault-Sync: Konfliktmarker wurden committet (merge --abort scheitert, Wächter committet halben Merge) #232
Labels
No labels
herkunft/alpha-feedback
status
blockiert
status
zu-testen
typ
bug
typ
docs
typ
enhancement
typ
feature
typ
idea
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
iris/Iris#232
Loading…
Add table
Add a link
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?
Beim Test Studio → Mac-VM (iris/Iris#223) landeten Konfliktmarker (
<<<<<<< HEAD … >>>>>>> origin/main) in rund 1.050 Notizen im Repoalf/obsidian-vaultauf dem Forgejo (Commit1c5c6754a„Manuelle Änderung“ der VM, 28.10.2026 16:34:55 UTC; weitergegeben mitc6fecfc7c). Das lokale Studio-Vault war nicht betroffen.Ursache (mit den echten Daten nachgestellt)
mergeRemoteführt den Merge aus (merge --no-commit), bekommt 964 Konflikte und nimmt ihn mitgit merge --abortzurück.smudge filter lfs failed; auf der VM fehlen 450 Anhänge), oder wenn eine hinzugefügte Datei vom Index abweicht (Entry … not uptodate. Cannot merge).filter.lfs.required=falsewar nur beim Merge selbst gesetzt, nicht beim Abbruch.merge --abortwurde ignoriert: Der Aufruf lieferte „Konflikt“, der Vault blieb mitten im Merge (.git/MERGE_HEAD, Marker im Arbeitsverzeichnis).add -A+commit) schrieb den halben Merge als Merge-Commit fest.Dieselbe Lücke hatte der Linux-Server (
_merge_remote,_apply_resolution,vault_git_autocommit). Meine Tests hatten sie nicht gefunden: Dort klappte der Abbruch immer, weil kein Anhang fehlte.Behoben
VaultSyncMerge.abortMerge,_abort_merge): erstmerge --abortmit nicht-fatalen LFS-Einstellungen, dannreset --hard HEAD(der Vault ist vor jedem Merge sauber, geprüft mitisDirty), zuletzt ohne LFS-Filter. Gelingt nichts davon, meldet der Abgleich einen Fehler (kein „Konflikt“)..git/MERGE_HEAD(Mac:VaultGitOperations.commitAll/commitPath,commitAllIfNeeded; Linux:_commit_pending,snapshot_note).checkout --ours/--theirsläuft mit denselben LFS-Einstellungen, damit ein fehlender Anhang eine Datei nicht fälschlich als „gelöscht“ behandelt.Nicht Teil dieses Issues
alf/obsidian-vault(Entscheidung des Nutzers).PR #122 gemergt: fix(vault-sync): kein Commit mitten im Merge, Abbruch eines Merge abgesichert (iris/Iris#232)
iris/iris-linux-server#122
Commits:
Stand 2026-10-28: Korrektur gebaut (Linux-Server und Mac-Server)
merge --abortscheitert (smudge filter lfs failed),.git/MERGE_HEADbleibt, 20.959 Einträge gestaged. Ergebnis nachher: 964 Konflikte, kein offener Merge, Vault sauber, kein Commit.vault_git_sync.py(_abort_merge,merge_in_progress, Konfliktauflösung mit LFS-Einstellungen),vault_git_autocommit.py(Wächter und Notiz-Snapshot sperren beiMERGE_HEAD); Mac-ServerVaultSyncCore.swift(abortMerge,mergeInProgress, Sperre im Commit beim Verbinden),VaultGitOperations.swift(commitAll/commitPathsperren beiMERGE_HEAD).tests/test_vault_git_sync.pyundtests/test_vault_sync_routes.py: 90 grün, 1 übersprungen; der neue Testtest_failed_merge_abort_still_leaves_the_vault_cleanschlägt ohne die Korrektur fehl und besteht mit ihr. Mac-Kernscripts/test-vault-sync-core.sh: 243 Prüfungen, 0 Fehler (neu: scheiternder Abbruch wird aufgefangen, unabbrechbarer Merge wird gemeldet und bleibt gesperrt); Schemes Iris und IrisClient bauen. Nachgestellt mit den echten Daten wie oben (Kopie, nichts am echten Vault).alf/obsidian-vault(1.054 Dateien mit Markern im Remote-Standc6fecfc7c); die VM-Kopie sollte neu aufgesetzt werden; warum 450 Anhänge auf dem Server fehlen.PR #233 gemergt: fix(vault-sync): kein Commit mitten im Merge, Abbruch eines Merge abgesichert (#232)
#233
Commits:
Stand 2026-10-28: Korrektur gebaut (Linux-Server und Mac-Server)
merge --abortscheitert (smudge filter lfs failed),.git/MERGE_HEADbleibt, 20.959 Einträge gestaged. Ergebnis nachher: 964 Konflikte, kein offener Merge, Vault sauber, kein Commit.vault_git_sync.py(_abort_merge,merge_in_progress, Konfliktauflösung mit LFS-Einstellungen),vault_git_autocommit.py(Wächter und Notiz-Snapshot sperren beiMERGE_HEAD); Mac-ServerVaultSyncCore.swift(abortMerge,mergeInProgress, Sperre im Commit beim Verbinden),VaultGitOperations.swift(commitAll/commitPathsperren beiMERGE_HEAD).tests/test_vault_git_sync.pyundtests/test_vault_sync_routes.py: 90 grün, 1 übersprungen; der neue Testtest_failed_merge_abort_still_leaves_the_vault_cleanschlägt ohne die Korrektur fehl und besteht mit ihr. Mac-Kernscripts/test-vault-sync-core.sh: 243 Prüfungen, 0 Fehler (neu: scheiternder Abbruch wird aufgefangen, unabbrechbarer Merge wird gemeldet und bleibt gesperrt); Schemes Iris und IrisClient bauen. Nachgestellt mit den echten Daten wie oben (Kopie, nichts am echten Vault).alf/obsidian-vault(1.054 Dateien mit Markern im Remote-Standc6fecfc7c); die VM-Kopie sollte neu aufgesetzt werden; warum 450 Anhänge auf dem Server fehlen.