Serverwechsel auf leeren Server lädt die LFS-Anhänge nicht hoch (nur Zeiger) #236

Closed
opened 2026-10-28 17:32:31 +00:00 by alf · 2 comments
Owner

Beim Wechsel des Mac-Studio-Vaults auf das neue, leere Repository alf/iris-vault-mac-studio (Forgejo 15.0.9) ging das Hochladen „zu schnell“: Das Repository hat 203 MB, das alte (alf/obsidian-vault) 29 GB. In einer Stichprobe von 300 der 12.747 LFS-Objekte (30,7 GB) fehlen auf dem neuen Repository alle 300, auf dem alten sind alle 300 da. Hochgeladen wurden nur die Zeiger, keine Anhänge.

Ursache

switchRemote / _switch_remote setzt mit git remote set-url origin <neu> nur die Adresse um. Die Verfolgungs-Referenzen des alten Servers (refs/remotes/origin/*) bleiben stehen. Der anschließende git push überträgt alle Git-Objekte (der leere Server meldet keine Referenzen), aber der pre-push-Haken von git-lfs lädt nur die Anhänge hoch, die nicht von refs/remotes/origin/* aus erreichbar sind, in der Annahme, dort seien sie schon. Der Test des Serverwechsels (iris/Iris#223) hatte keinen Anhang im Vault, deshalb fiel es nicht auf.

Behoben

  • Beim Wechsel werden die Verfolgungs-Referenzen von origin gelöscht, bevor die Adresse umgesetzt wird. Scheitert ein Schritt, bekommt der Rückweg sie wieder (Linux-Server _drop_tracking_refs, Mac-Server dropTrackingRefs).
  • Neue Tests: Wechsel auf einen leeren Server mit einem LFS-Anhang; der Anhang muss danach auf dem neuen Server liegen (ein frischer Klon holt den Inhalt). Der Test schlägt ohne die Korrektur fehl („remote missing object“) und besteht mit ihr.

Offen

Die schon fehlenden Anhänge von alf/iris-vault-mac-studio müssen nachgeladen werden (git lfs push --all origin im Studio-Vault, 12.747 Objekte, 30,7 GB). Das entscheidet der Nutzer.

Beim Wechsel des Mac-Studio-Vaults auf das neue, leere Repository `alf/iris-vault-mac-studio` (Forgejo 15.0.9) ging das Hochladen „zu schnell“: Das Repository hat 203 MB, das alte (`alf/obsidian-vault`) 29 GB. In einer Stichprobe von 300 der 12.747 LFS-Objekte (30,7 GB) fehlen auf dem neuen Repository **alle 300**, auf dem alten sind alle 300 da. Hochgeladen wurden nur die Zeiger, keine Anhänge. ## Ursache `switchRemote` / `_switch_remote` setzt mit `git remote set-url origin <neu>` nur die Adresse um. Die Verfolgungs-Referenzen des alten Servers (`refs/remotes/origin/*`) bleiben stehen. Der anschließende `git push` überträgt alle Git-Objekte (der leere Server meldet keine Referenzen), aber der `pre-push`-Haken von git-lfs lädt nur die Anhänge hoch, die **nicht** von `refs/remotes/origin/*` aus erreichbar sind, in der Annahme, dort seien sie schon. Der Test des Serverwechsels (iris/Iris#223) hatte keinen Anhang im Vault, deshalb fiel es nicht auf. ## Behoben - Beim Wechsel werden die Verfolgungs-Referenzen von `origin` gelöscht, bevor die Adresse umgesetzt wird. Scheitert ein Schritt, bekommt der Rückweg sie wieder (Linux-Server `_drop_tracking_refs`, Mac-Server `dropTrackingRefs`). - Neue Tests: Wechsel auf einen leeren Server mit einem LFS-Anhang; der Anhang muss danach auf dem neuen Server liegen (ein frischer Klon holt den Inhalt). Der Test schlägt ohne die Korrektur fehl („remote missing object“) und besteht mit ihr. ## Offen Die schon fehlenden Anhänge von `alf/iris-vault-mac-studio` müssen nachgeladen werden (`git lfs push --all origin` im Studio-Vault, 12.747 Objekte, 30,7 GB). Das entscheidet der Nutzer.
Author
Owner

PR #124 gemergt: fix(vault-sync): Serverwechsel auf leeren Server lädt LFS-Anhänge hoch (iris/Iris#236)
iris/iris-linux-server#124

Commits:

  • fix(vault-sync): Serverwechsel auf leeren Server lädt LFS-Anhänge hoch (iris/Iris#236)

Stand 2026-10-28: Korrektur gebaut (Linux-Server und Mac-Server)

  • Befund und Ursache: siehe Beschreibung; gemessen am neuen Repository (203 MB, 0 von 300 stichprobenartig geprüften LFS-Objekten vorhanden, am alten 300 von 300).
  • Geändert: Linux-Server vault_git_sync.py (_drop_tracking_refs, Rückweg stellt sie wieder her); Mac-Server VaultSyncCore.swift (dropTrackingRefs).
  • Geprüft: Linux-Server tests/test_vault_git_sync.py: 89 grün; Mac-Kern scripts/test-vault-sync-core.sh: 246 Prüfungen, 0 Fehler. Der neue Test (LFS-Anhang beim Wechsel auf einen leeren Server) schlägt ohne die Korrektur fehl, auf beiden Seiten.
  • Nicht geprüft: gegen einen echten Forgejo; die Mac-App (nicht neu gebaut/installiert); ob der Wechsel auf einen Spiegel (gleicher Verlauf) alle Anhänge auf dem neuen Server hat — dort verlässt sich der Wechsel auf den Server (nicht geändert).
  • Nicht deployt.
  • Offen: Anhänge von alf/iris-vault-mac-studio nachladen (Entscheidung des Nutzers).
PR #124 gemergt: fix(vault-sync): Serverwechsel auf leeren Server lädt LFS-Anhänge hoch (iris/Iris#236) https://forgejo.lewerken.duckdns.org/iris/iris-linux-server/pulls/124 Commits: - fix(vault-sync): Serverwechsel auf leeren Server lädt LFS-Anhänge hoch (iris/Iris#236) --- **Stand 2026-10-28: Korrektur gebaut (Linux-Server und Mac-Server)** - **Befund und Ursache:** siehe Beschreibung; gemessen am neuen Repository (203 MB, 0 von 300 stichprobenartig geprüften LFS-Objekten vorhanden, am alten 300 von 300). - **Geändert:** Linux-Server `vault_git_sync.py` (`_drop_tracking_refs`, Rückweg stellt sie wieder her); Mac-Server `VaultSyncCore.swift` (`dropTrackingRefs`). - **Geprüft:** Linux-Server `tests/test_vault_git_sync.py`: 89 grün; Mac-Kern `scripts/test-vault-sync-core.sh`: 246 Prüfungen, 0 Fehler. Der neue Test (LFS-Anhang beim Wechsel auf einen leeren Server) schlägt ohne die Korrektur fehl, auf beiden Seiten. - **Nicht geprüft:** gegen einen echten Forgejo; die Mac-App (nicht neu gebaut/installiert); ob der Wechsel auf einen Spiegel (gleicher Verlauf) alle Anhänge auf dem neuen Server hat — dort verlässt sich der Wechsel auf den Server (nicht geändert). - **Nicht deployt.** - **Offen:** Anhänge von `alf/iris-vault-mac-studio` nachladen (Entscheidung des Nutzers).
Author
Owner

PR #237 gemergt: fix(vault-sync): Serverwechsel auf leeren Server lädt LFS-Anhänge hoch (#236)
#237

Commits:

  • fix(vault-sync): Serverwechsel auf leeren Server lädt LFS-Anhänge hoch (#236)

Stand 2026-10-28: Korrektur gebaut (Linux-Server und Mac-Server)

  • Befund und Ursache: siehe Beschreibung; gemessen am neuen Repository (203 MB, 0 von 300 stichprobenartig geprüften LFS-Objekten vorhanden, am alten 300 von 300).
  • Geändert: Linux-Server vault_git_sync.py (_drop_tracking_refs, Rückweg stellt sie wieder her); Mac-Server VaultSyncCore.swift (dropTrackingRefs).
  • Geprüft: Linux-Server tests/test_vault_git_sync.py: 89 grün; Mac-Kern scripts/test-vault-sync-core.sh: 246 Prüfungen, 0 Fehler. Der neue Test (LFS-Anhang beim Wechsel auf einen leeren Server) schlägt ohne die Korrektur fehl, auf beiden Seiten.
  • Nicht geprüft: gegen einen echten Forgejo; die Mac-App (nicht neu gebaut/installiert); ob der Wechsel auf einen Spiegel (gleicher Verlauf) alle Anhänge auf dem neuen Server hat — dort verlässt sich der Wechsel auf den Server (nicht geändert).
  • Nicht deployt.
  • Offen: Anhänge von alf/iris-vault-mac-studio nachladen (Entscheidung des Nutzers).
PR #237 gemergt: fix(vault-sync): Serverwechsel auf leeren Server lädt LFS-Anhänge hoch (#236) https://forgejo.lewerken.duckdns.org/iris/Iris/pulls/237 Commits: - fix(vault-sync): Serverwechsel auf leeren Server lädt LFS-Anhänge hoch (#236) --- **Stand 2026-10-28: Korrektur gebaut (Linux-Server und Mac-Server)** - **Befund und Ursache:** siehe Beschreibung; gemessen am neuen Repository (203 MB, 0 von 300 stichprobenartig geprüften LFS-Objekten vorhanden, am alten 300 von 300). - **Geändert:** Linux-Server `vault_git_sync.py` (`_drop_tracking_refs`, Rückweg stellt sie wieder her); Mac-Server `VaultSyncCore.swift` (`dropTrackingRefs`). - **Geprüft:** Linux-Server `tests/test_vault_git_sync.py`: 89 grün; Mac-Kern `scripts/test-vault-sync-core.sh`: 246 Prüfungen, 0 Fehler. Der neue Test (LFS-Anhang beim Wechsel auf einen leeren Server) schlägt ohne die Korrektur fehl, auf beiden Seiten. - **Nicht geprüft:** gegen einen echten Forgejo; die Mac-App (nicht neu gebaut/installiert); ob der Wechsel auf einen Spiegel (gleicher Verlauf) alle Anhänge auf dem neuen Server hat — dort verlässt sich der Wechsel auf den Server (nicht geändert). - **Nicht deployt.** - **Offen:** Anhänge von `alf/iris-vault-mac-studio` nachladen (Entscheidung des Nutzers).
alf 2026-10-31 09:12:17 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
iris/Iris#236
No description provided.