Jak czytać prawo jako git¶
Każda ustawa w korpusie to jeden plik Markdown. Cała jej historia legislacyjna jest zapisana w historii git tego pliku.
Pełna historia nowelizacji¶
git log -p pliku ustawy to jej kompletna historia zmian — każdy diff to dokładna
zmiana w brzmieniu przepisu, a każdy merge to nowelizacja wchodząca w życie:
git clone https://git.sedzia.ai/sejm/prawostanowienie.git
cd prawostanowienie
git log -p ustawy/2018/0305-*.md
W przeglądarce ten sam widok znajdziesz, wchodząc w plik ustawy w korpusie i wybierając History / Blame na forge.
Co przepis stanowił danego dnia¶
Każdy commit nosi datę historyczną zdarzenia (a nie datę wygenerowania). Dlatego
git blame z datą pokazuje brzmienie obowiązujące w wybranym dniu:
git blame --date=short ustawy/2018/0305-*.md | grep 2023-06-15
Model gałęzi¶
| Gałąź | Znaczenie |
|---|---|
main |
tekst obowiązujący (skonsolidowany) |
nowelizacja/DU-RRRR-NNNN |
nowelizacja, która weszła w życie (merge --no-ff w dniu wejścia w życie) |
w-toku/termN-drukM |
projekt aktualnie procedowany w Sejmie |
odrzucone/*, wycofane/*, niezakonczone/* |
projekty, które nie weszły w życie |
Commity przenoszą też wyniki głosowań, a merge — imienne głosy posłów (jako trailery). Więcej w eseju „Głosowanie w git”.