• v2.2.1 b2f7dec122

    v2.2.1
    CI / verify (push) Successful in 43s
    Release / release (push) Successful in 38s
    Stable

    torben released this 2026-09-01 17:06:03 +00:00 | 103 commits to main since this release

    2.2.1 - 2026-09-01 - private-instance: der Demo-Korpus wandert beim Merge doch mit - Prozedur korrigiert

    Author: Torben Nehmer

    instructions/private-instance.md behauptete in 2.2.0, ein git merge upstream/main löse
    Änderungen am Demo-Korpus stillschweigend auf, weil die private Instanz ihn einmal gelöscht hat:
    deleted-in-ours, unmodified-in-theirs. Das war nicht gemessen, sondern angenommen — und es
    ist falsch. Ein Nachbau mit einem Upstream, der seinen Korpus bewegt, zeigt drei verschiedene
    Verhalten:

    Upstream tut git merge upstream/main tut
    ändert eine Seite, die du gelöscht hast CONFLICT (modify/delete) — und lässt die Upstream-Fassung im Arbeitsbaum liegen. Ein git add -A beim Auflösen holt die Demo-Seite zurück.
    legt eine neue Seite an staged sie stillschweigend. Kein Konflikt, keine Meldung.
    löscht eine Seite, die du auch gelöscht hast nichts. Der einzige harmlose Fall.

    Die mittlere Zeile ist die gefährliche, weil nichts sie ankündigt. Ein Upstream, der einen
    Demo-Korpus ausliefert und ihn als Testbett benutzt, legt Seiten an — und jede einzelne
    landet in der privaten Instanz und taucht dort in lint, index, search und
    confidence decay auf. Genau diese Doppelnutzung beschreibt Issue #28.

    Korrigiert: Die Update-Prozedur hält den Merge mit --no-commit offen, zwingt kb/ und
    raw/ danach auf den eigenen Stand zurück (git rm --cached, rm -rf, git checkout HEAD --)
    und schließt ihn erst dann. Solange der Merge offen ist, zeigt HEAD noch auf den Commit davor,
    und genau das macht den Schritt sauber. Anschließend eine Kontrolle, die man nicht überlesen
    kann:

    git diff --name-only $BEFORE HEAD -- kb raw     # muss leer sein
    

    Das Rezept ist wörtlich so nachgespielt worden, wie es jetzt in der Datei steht — mit einem
    Upstream, der gleichzeitig eine Seite ändert, eine anlegt, eine löscht und dasselbe unter
    raw/ tut. Ergebnis: Stack aktualisiert, nur eigener Inhalt übrig, Kontrolle leer,
    Arbeitsbaum sauber.

    Auch die Decision Points korrigiert. „Konflikt in kb/ per Hand als keep deleted
    auflösen" stand vorher da und ist der Rat, der in die Falle führt: git add -A committet die
    Fassung, die git im Arbeitsbaum liegen gelassen hat.

    Dateien: instructions/private-instance.md.

    Downloads