AL3XNo já mám v návrhu repository založené na nodech. Každý node je reprezentovan souborem.
- Nody se číslují od 0 do nekonečno.
- Každý node je celý jeden soubor včetně historie.
- Historie se čte odzadu dopředu, aktuální verze je vždy poslední.
- Každý záznam obsahuje číslo revize (každý soubor má vlastní číslování, ale je možné číslovat globálně jako v SVN), timestamp commitu, comment a commit user.
- Adresář je taky soubor.
- Node 0 je vyhrazen pro globalni parametry repository
- Node 1 je root.
- Adresář obsahuje názvy souborů a přířazená čísla nodů (případně i číslo revize).
- Každý node obsahuje buď komplet celou historii, nebo odkaz na jiný node (a číslo revize) a zbytek své historie. Takto lze branchovat.
mezi další nápady jsou hardlinky, symbolické linky (i třeba do jiných repository), branchování v adresáři, soukromé branche, R/O Checkout, no musím to sepsat, bude to součástí úvodu. A samozřejmě, napadla mne i myšlenka lokálního repository, ale nespatřuju v tom výhodu.
Ještě jsem zapoměl napsat, prototyp bude v Jave. Je to podmínka, nic s tím nenadělám. Po odevzdání možná core přepíšu do C++
|