README: Rückfallebene dokumentieren, wenn git pull scheitert
Der Befehl stand bisher nur in den Antworten im Chat, nicht im Repo — genau die Sorte Wissen, die verloren geht. Aufgenommen mit dem Grund dahinter: 'fatal: early EOF' beim Klonen ist ein serverseitiges Problem, upload-pack stirbt beim Schnüren des Pakets, während die Objekte heil sind. Erkennbar daran, dass sich ein Archiv weiterhin erzeugen lässt — und genau darauf weicht init-phone.sh aus. Ausdrücklich dabei: das Ergebnis ist ein Abzug ohne .git. 'git pull' geht damit nicht mehr, und derselbe Befehl stellt später auch die Arbeitskopie wieder her, sobald der Server sich erholt hat. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -79,6 +79,32 @@ Dadurch liegt dort eine echte Arbeitskopie — spätere Änderungen brauchen kei
|
|||||||
cd ~/hpos && git pull
|
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:
|
Details, Stellschrauben und was bei Fehlschlägen zu tun ist:
|
||||||
[`spike/README.md`](spike/README.md).
|
[`spike/README.md`](spike/README.md).
|
||||||
|
|
||||||
|
|||||||
@@ -94,11 +94,19 @@ bash spike/04-s4-intent-handoff.sh
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd ~/hpos && git pull
|
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.
|
Per adb kommt bewusst nur das Startskript aufs Telefon, nicht das Repo selbst.
|
||||||
Dadurch liegt dort eine echte Arbeitskopie statt einer Kopie.
|
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
|
Jedes Skript fragt am Ende nach deiner Beurteilung und schreibt sie nach
|
||||||
`spike/out/ergebnisse.tsv`. Rohprotokolle liegen daneben in `spike/out/*.log`.
|
`spike/out/ergebnisse.tsv`. Rohprotokolle liegen daneben in `spike/out/*.log`.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user