diff --git a/README.md b/README.md index 5beb4aa..4687bc9 100644 --- a/README.md +++ b/README.md @@ -79,6 +79,32 @@ Dadurch liegt dort eine echte Arbeitskopie — spätere Änderungen brauchen kei cd ~/hpos && git pull ``` +**Wenn `git pull` scheitert:** + +```bash +rm -rf ~/hpos && bash /sdcard/hpos-init.sh +``` + +Das Startskript versucht zuerst wieder einen Klon und weicht, falls der Server keine +Pakete ausliefert, auf den Archiv-Endpunkt aus (`/archive/main.tar.gz`). Der geht +nicht über `git upload-pack` und funktioniert deshalb auch dann noch. + +Das Ergebnis ist dann allerdings **ein Abzug, keine Arbeitskopie** — `git pull` geht +damit nicht mehr, jede Aktualisierung braucht denselben Befehl erneut. Sobald der +Server wieder Pakete liefert, stellt genau dieser Befehl auch die Arbeitskopie +wieder her. + +Typische Meldung, wenn es so weit ist: + +``` +fatal: early EOF +fatal: fetch-pack: invalid index-pack output +``` + +Das ist ein serverseitiges Problem — `upload-pack` stirbt beim Schnüren des Pakets, +während die Objekte selbst heil sind. Erkennbar daran, dass sich ein Archiv weiterhin +erzeugen lässt. + Details, Stellschrauben und was bei Fehlschlägen zu tun ist: [`spike/README.md`](spike/README.md). diff --git a/spike/README.md b/spike/README.md index 6072740..5307f18 100644 --- a/spike/README.md +++ b/spike/README.md @@ -94,11 +94,19 @@ bash spike/04-s4-intent-handoff.sh ```bash cd ~/hpos && git pull + +# Falls das scheitert (Server liefert keine Pakete aus): +rm -rf ~/hpos && bash /sdcard/hpos-init.sh ``` Per adb kommt bewusst nur das Startskript aufs Telefon, nicht das Repo selbst. Dadurch liegt dort eine echte Arbeitskopie statt einer Kopie. +Der zweite Befehl weicht auf den Archiv-Endpunkt aus, wenn `git clone` am Server +scheitert. Das Ergebnis ist dann ein Abzug ohne `.git` — `git pull` geht damit nicht +mehr, und jede Aktualisierung braucht denselben Befehl erneut. Sobald der Server +wieder Pakete liefert, stellt er auch die Arbeitskopie wieder her. + Jedes Skript fragt am Ende nach deiner Beurteilung und schreibt sie nach `spike/out/ergebnisse.tsv`. Rohprotokolle liegen daneben in `spike/out/*.log`.