tvxČíslování revizí je pro někoho zavádějící, protože to vypadá, že se mění celá repozitář, ale není tomu tak. To číslo jen vyjadřuje nějaký historický milník, umožňující referovat zdroje do historie.
Máš pravdu, že pro zadané číslo revize jsi schopen sestavit celou repozitář. Ale neznamená to, že je to tak i uložené. Příklad: Když vytáhnu revizi 10, přesto mi do WC přileze soubor s revizí 3, prostě proto, že v daném adresář není žádná novější verze toho souboru. Pokud ho změníš a commitneš, uloží se s revizí 11.
Já třeba používám jeden repozitář, protože se mi lépe vytváří vztahy mezi projekty, pokud tam jsou. Naopak nemám zkušenosti s externals, který prý umožňují aktualizovat z externích zdrojů. Sám používám pravidlo pro spolupráci části zdrojáků
1) úzká spolupráce - v rámci jednoho projektu
2) volnější spolupráce - projekty v rámci repozitáře
3) žádná nebo velice lehká spolupráce - samostaný repozitář
4) externí knihovny (jiných autorů) - samostatný repozitář.
Kdokoliv:
1) Předpokládá se, že je podporuje operační systém.
2) Vyžaduje stahovat zdroje tech symbolických linků.
Ad1)napříkald windows. Nechci slyšet, že je to problém Windowsu. I kdybych se rozhodl vyvíjet třeba v MSDOSu, nebo na nějaké jiné exotické platformě, prostě symbolické linky jsou něco extra a verzovací systém by s tím neměl počítat.
Ad2) Například, pokud nasdílím takto zdroják z /trunk/project1/sources/lib/extralib/linux/aaa/includes/zdroj.h do /trunk/project2/zdroj.h, pak, aby mi to fungovalo, musím do svého WC stahovat i project1, nebo minimálně tuto šílenou cestu.
Od verzovacího systému bych očekával, že bude spíš simulovat funkcionalitu, že nasdílené zdroje jsou ve skutečnosti separátní zdroje, které si navzájem propagují updaty. Tedy pokud nasdílím jeden soubor na tři místa, pak commitem do jednoho souboru se provede propagaci změn na ostatní místa, jako bych to provedl ručně. Tohle mi SVN bohužel neposkytuje a považuji to celkem za zásadní vadu. |