Jak na CVS
Návod jak rozběhat CVS repository na Windows. Jde to i na Linuxu, ale nikdy jsem to nedělal. Popravdě, toto byla trochu zvrhlá věta, protože pro CVS jsou unixové systémy nativní platformou. Nehledejte zde co je to CVS. Návod není ani o používání CVS – je o instalaci služeb do systému, aby se mohly používat.
První kroky
Protože CVS je primárně pro jiné OS než Windows, uchýlíme se k CVSNT. To je rozšíření CVS, jež lze instalovat i na Windows. Na stránkách projektu se přes free download proklikáme ke stažení instalace. Instalační cvsnt-verze.msi spustíme typický klikací průvodce instalací, kde by nemělo dojít k žádným složitostem (klikat na next umí i nesmažený hermelín).
Nainstalováno. Co teď? CVS bude používat pro svou práci nějaký port. Zřejmě zůstanete u standardního 2401. Musíte jej povolit ve firewallu.
Control Panel a vytvoření repository
Koukněte do Start menu a najděte nově nainstalovanou složku s CVSNT. Je tam CVSNT Control Panel. Dosti užitečné GUI, které hned využijeme. Hned na první záložce je možnost vypínat a spouštět obě CVS služby. Na záložce s Repository configuration můžete spravovat úložiště dat (či jak to nazvat). V Location vyberte cestu k nově zřizovanému repository. Repository je serverová část CVS, místo, kam si CVS ukládá údaje o změnách v souborech vašich projektů. Cestu volte nějak rozumně, třeba D:/wrk/cvs.
V Server settings záložce bych sice nic za normálních okolností neměnil, ale pokud z různých firewallových důvodů nemůžete využít výchozí port pro CVS, zde jej můžete upravit. Relevantní je CVS server port, ten druhý měnit netřeba.
Uživatelé
Já osobně využívám CVSNT na jednom počítači jako server i klient a tím se řídí můj návod. Pokud to potřebujete jinak, musíte se s tím nějak poprat. CVSNT při tomto mém nastavení využívá uživatelské účty ve Windows.
Ve složce, kam jsme umístili repository se vytvořil adresář CVSROOT. Zde je milion souborů, které není radno editovat a pár souborů, jejichž editace může mít docela vlídné následky :) . Např. soubor admin definuje administrátory repository. Na každém řádku má být jméno administrátora, takže tam přidejte název svého Windows účtu (u mě soubor obsahuje dvě písmena, a to lm).
Pak v příkazové řádce Windows zadejte
set CVSROOT=:pserver:adminlogin@localhost:/cvs
nebo, pokud jste měnili port,
set CVSROOT=:pserver:adminlogin@localhost:0000:/cvs
Místo adminlogin pište svůj administrátorský login (já lm), místo 0000 svůj port a místo /cvs název repository (ten vypisuje Control Panel v přehledu repositories v prvním sloupci tabulky). Pak už si můžete hrát s účty (přidávat a měnit hesla):
cvs passwd -a nejakylogin
Zeptá se na nové heslo, to zašifruje a spolu s loginem plácne do souboru passwd v CVSROOT. Dále domapujeme uživatele Windows k CVS a to poeditováním passwd do následující podoby:
<login>:<heslo>:<windows user>
Je hotovo. Teď už se jen připojit. Na všechno jsou příkazy v CLI, ale zkušenější člověk se s tím nemusí párat a může poeditovat nějaký ten soubor ručně, když k tomu má přístup nevzdáleně a ví co dělá. Akorát heslo je třeba tvořit přes příkazovou řádku, protože se šifruje.
Vzdálený přístup pro kolegy
Protože je provázanost mezi uživateli vašeho systému a CVS, vytvořte si lokálního fiktivního uživatele ve Windows, např. cvsuser nebo cvs. Nemusí se k němu jít ani přihlásit, měl by mít omezená práva apod. Jinak se s tím zápasí pod Windows XP Proffesional (je na to GUI) a jinak pod Windows XP Home (buď necháte jako běžného usera, nebo nakonfigurujete přes CLI stejně jako byste to dělali v Proffesional přes GUI), ale jde to všude. Na tohoto uživatele můžeme mapovat všechny spolupracovníky.
Uživatele pak přidáte úplně stejně jako výše, akorát jej namapujete v passwd na Windows fiktivního uživatele pro cvs. Kolega se pak připojí nějak takto:
:pserver:jehoskvelylogin@vaseipadresa:port:repository
Například:
:pserver:karkulka@0.255.0.255:/work/cvs
a musíte mu samozřejmě napsat i přidělené heslo. Místo IP můžete použít i DNS adresu, pokud nějakou máte.
конец
Tak milé děti, konec! Teď už můžete vyvíjet pod CVS. A já si jdu hrát s SVN ;) . Za spolupráci na operaci a za trpělivost budiž položen dík brašulemu.
Maple 1. 1. 2008 v 17:49
Jak už jsem zmínil dříve, SVN je asi lepší (už proto, že cílem autorů bylo vyvinout něco, co vypadá víceméně jako CVS, ale neobsahuje to jeho bolesti). Ale dobrému týmovému programátorovi se dnes jistě hodí mít zkušenosti jak s CVS, tak se SVN.
K tomu SVN vyšla i pěkná fri kniha, jíž je z velké části spoluautor Ben Collins Susman (spoluautor samotného SVN). Zajímavý je i jeho blog, kde se sem tam mihne i něco z novinek kolem problematiky označované jako source control.
Ještě bys mohl zmínit, k čemu to je vlastně dobré, proč by si měl někdo na svůj počítač instalovat CVS/SVN. Jaké má třeba i bolesti řešení mít source control na svém lokálním počítači pro týmovou tvorbu apod.
Trochu jsem přemýšlel nad tím, že bych uvolnil tu svou prezentaci pro veřejnost, ale jsem teď v takovém nerozhodném období, protože to vypadá, že zrovna tohle téma mi v blízké budoucnosti pomůže vydělat si na chleba. Zkuste o tom třeba hlasovat (ti, co ji znáte), zda by přínost pro okolí byl vůbec nějaký :-)
Janda Martin 2. 1. 2008 v 18:48
Jinak trochu mimo misu – v praci ted jedeme na GITu, obdoba CVS ale decentralizovane koncipovana. Taky doporucuju k prozkoumani. Osobne se mi s tim pracuje lepe nez se cvs nebo svn.
Littlemaple 2. 1. 2008 v 19:07
MJ: Dik za tip.
Maple: Diky za zdroje. Jinak psat o tom co je cvs a k cemu je, to se mi prave zrovna nechtelo, i kdyz pro osvetu by to asi bylo prinosnejsi. Jinak myslim, ze prezentace je dobra a urcite by melo smysl ji zverejnit. Nevidim duvod proc ne – prehnane, jakakoliv publikace ti spise zvysi status „rozumim source control“, coz muze mit pozitivni vliv na oblast lovu chleba.
Maple 2. 1. 2008 v 22:58
Centrálně decentralizované systémy jsou teď vůbec moderní. Hodně o tom píše právě Ben v článcích The Risks of Distributed Version Control a Version Control and the 80%. Zvlášť ten druhý spustil velkou flamewar, bo plno lidí nějak nepochopilo, co tím chtěl říct.
K u veřejnění prezentace – musel bych ji asi nějak updatnout. A to, co říkáš je sice pravda, nicméně pokud bych to měl školit, je na zvážení, zda dát k dispozici zdarma velmi kvalitní školící materiály, které by mohly způsobit to, že se studenti obejdou bez mého výkladu… :-)
Littlemaple 3. 1. 2008 v 10:58
Já myslím, že jít na přednášku nebo číst si slajdy je, nebo tedy měl by být, docela markantní rozdíl. Pokud to přednášející jen přečte, tak to rozdíl samozřejmě není :D .
Nemyslím si, že webdesignéři, grafici, správci OS, rekondiční maséři apod. havěť by ztrácela klientelu proto, že např. publikovali knihu se vším co ví ;) . Spíše naopak.
Maple 3. 1. 2008 v 15:58
Něco na tom bude :-) Možná je tedy problém spíše ve mně – spíš nad daným manuálem vystavit dobré školení. Na druhou stranu si nedovedu jasně představit, jak tohle školit :-) Přijde mi, že k tomu, aby někdo pochňápil dobře source control a vše kolem něj, stačí si přečíst manuál nebo knihu… ;-) Možná odtud pramení mé obavy… ;-)
Pak je otázka, zda se chci proslavit takovým manuálem, po jehož přečtení to bude každý bezvadně ovládat a ještě se to naučí hravou formou, a nebo zda chci zbohatnout na školení ;-)
Asi si to promyslím, možná ve volné chvilce vydám novější verzi – myslíš, že to bude vypadat divně jako jeden z odkazů na jentaku? :-)
Littlemaple 3. 1. 2008 v 22:01
Já bych tomu udělal nějakou malou stránku. Plánuji takové pro svoje některé projekty taky. Něco jako tohle nebo toto. Do jentaku to nepleť, protože jentak je osobní, kdežto CVS profesní. Proč vlastně nemáš jako freelancer svůj web? :P Nemusíš tam mít skoro nic, stačí jméno, čím se zabýváš, mail a odkaz na linkedin třeba. A odkaz na prezentaci(e) ;) .
Ad přidaná hodnota v přednášce oproti PDF s prezentací – to už holt musíš vymyslet sám… Viděl jsem přednášky, které byly nad sto knih ;) . Je prostě třeba tomu dát novou dimenzi a využít maximum co forma přednášky nabízí (praktické ukázky, dobré tipy navíc apod. – co já vím…). Asi bych si prostě nenechal platit za čtení :P .
Maple 31. 1. 2008 v 10:54
No, já zatím žádný web jako freelancer nepotřebuju, já mám práci ;-)
Mike 9. 2. 2008 v 23:51
Zkoušel jsem to rozjet na Vistach…a nejede, prakticky jenom workspace viewer reaguje :-/
Littlemaple 10. 2. 2008 v 09:44
Těžko říct, s Vistama zkušenosti nemám a doufám že dlouho ani mít nebudu :-| . Třeba budou mít radu přímo na CVSNT.