67 lines
2.3 KiB
Markdown
67 lines
2.3 KiB
Markdown
# Git-Spiegel der Fassungen (`laws_git/`)
|
||
|
||
Nachvollziehbare Geschichte der Bundesgesetze als **eigenes Git-Repository**.
|
||
Das Eltern-Repo `lawgit` bleibt die Arbeitskopie (Parser, UI, Markdown von
|
||
gesetze-im-internet.de). `laws_git/` ist ein verschachteltes Git-Repo und liegt
|
||
absichtlich nicht auf `main` (außer dieser Anleitung).
|
||
|
||
**Eine Verkündung = ein Commit.** Datum des Commits ist das Verkündungsdatum.
|
||
|
||
## Was man hier sieht
|
||
|
||
| Aktion | Bedeutung |
|
||
|---|---|
|
||
| `git log --oneline -- verkuendungen/` | alle Blätter chronologisch |
|
||
| `git show HEAD:verkuendungen/2024/bgbl1-2024-167-1.md` | Metadaten einer Verkündung |
|
||
| `git log --oneline -- bgb/` | nur Stationen, die dem BGB zugeordnet sind, plus heutiger GII-Text |
|
||
| `git show HEAD:bgb/§1.md` | heutiger Wortlaut von § 1 |
|
||
|
||
**Ehrlich:** Den vollen historischen Paragraphentext haben wir meist nicht.
|
||
Ältere Commits tragen Metadaten (`FASSUNG.md`, `STELLEN.md`) statt eines
|
||
erfundenen Altwortlauts. Der letzte Commit eines Gesetzesordners ist die
|
||
konsolidierte Fassung von gesetze-im-internet.de.
|
||
|
||
2023+ stammt aus der Heuristik (recht.bund.de): Fundstelle und Titel sind
|
||
belastbar, Stammnorm-Ordner nur wenn der Kurztitel eine bekannte Norm nennt.
|
||
1949–2022: LLM-Parse, lückenhaft solange `--holen` nicht den vollen Bestand hat.
|
||
|
||
**Git-Datum vor 1970:** Apple Git akzeptiert keine Author-Daten vor 1970.
|
||
Diese Commits liegen intern auf dem 1.1.1970 (Reihenfolge bleibt).
|
||
Die echte Verkündung steht in der Commit-Message und in `verkuendungen/`.
|
||
|
||
Git = Fassungsgeschichte. Die Postgres-Datenbank bleibt für Abfragen.
|
||
|
||
## Bauen und nachziehen
|
||
|
||
Im Eltern-Repo:
|
||
|
||
```bash
|
||
# Alles neu schreiben (Demo-Kette verwerfen)
|
||
python3 build_laws_git.py --rebuild
|
||
|
||
# Nur nachziehen (idempotent über Trailer `BGBl-Id:`)
|
||
python3 build_laws_git.py
|
||
|
||
# Ein Gesetz / Test
|
||
python3 build_laws_git.py --law bgb --rebuild
|
||
python3 build_laws_git.py --dry-run --limit 20
|
||
```
|
||
|
||
Quellen: `timeline/parsed/` (lawgit, GPU-Historie) und
|
||
`../gesetzblatt/timeline/parsed/` (recht.bund.de ab 2023).
|
||
|
||
Kein Force-Push.
|
||
|
||
```bash
|
||
git -C laws_git log --oneline -- verkuendungen/
|
||
git -C laws_git log --oneline -- bgb/
|
||
git -C laws_git blame bgb/§1.md
|
||
```
|
||
|
||
Optional zweites Remote (nicht `main` von lawgit):
|
||
|
||
```bash
|
||
git -C laws_git remote add origin git@git.coded.law:michaelkole/laws-git.git
|
||
git -C laws_git push -u origin main
|
||
```
|