Chápu se výzvy a mám tu požadavek na obsah dalšího dílu (tzv. request for comment :)):
Zajímala by mě správa větví programu v CVS, konkrétně případ, kdy mám produkční a testovací verzi systému, které se drobně liší (připojení k různým databázím, volání různých knihoven, apod. - tyto změny jsou konstantní). Vývoj provádím na testovací verzi, po odladění chci změny promítnout do ostré verze, ale tak, aby konstantní změny zůstaly nedotčeny. Pomůže mi v tom CVS? (Věřím, že ano...).
Jinak pěkný článek, hezký styl...
Martin
Názory k článku
Výlet do říše verzí: CVS přes síť
Námět na pokračování
celé vláknoRe: Námět na pokračování
celé vláknoNeni to daleko vice o tom jak napsat lepe ten vlastni software tak, aby to bylo veci konfigurace a ne stavu kodu?
Jinak pekny clanek.
Re: Námět na pokračování
celé vláknoJa mam pro podobne pripady v programu dve vetve a program sam detekuje jestli bezi v testu nebo v ostrem provozu a nainicializuje se podle toho :-)
Re: Námět na pokračování
celé vláknoidealne je urobit si zvlast "konfiguracny modul" pre obe verzie programov a po zmene lokalnych verzii konfiguracie v oboch stromoch jednoducho necomittovat (alebo neupdatovat, podla toho, ako je clovek zvyknuty) cely vyvojovy strom, ale len zdrojaky (nie konfiguraciu).
m.
Re: Námět na pokračování
celé vláknoCVS samotne k tomu obavam se prilis nepomuze (alespon AFAIK), v CVSku z mergovani nejdou excludnout (vyjmout, chcete-li) explicitne nejake zmeny. Bud oddelte konfiguraci od zdrojaku (nejlepsi reseni), nebo muzete zvlast udrzovat patch proti produkcni a testovaci verzi, ktery tu konfiguraci upravi dle potreby. Ale radeji dejte konfiguraci uplne nekam pryc, kde nebude zavazet.
Re: Namet na pokracovani
celé vláknoMusis pouzivat logicky jmena. Ja osobne datbazoby servery identifikuju jako kazdy jiny servery, pres DNS jmena (a na development serverech je upravenej hosts soubor ukazujici na vyvojovy servery), ruzny knihovny budto tak ze na vyvojovym serveru sou debug knihovny pod tema stejnejma jmenama anebo pokud chces mermomoci ruzny tak si udelej linky na prave pouzivany... Hardcodovat takovyhle veci do kodu a pak mit dve verze je nesmysl, budes v tom mit zmatek (a treba my mame v praci minimalne tri ruzny setupy, ne jen dva).
Kdy CVS nepouzivat
celé vláknoNa zaklade jistych svych zkusenosti uvazuji o napsani clanku "kdy CVS nepouzivat". Myslite, ze by byl zajem? ;-)
Re: Kdy CVS nepouzivat
celé vláknoZ nasi strany taky urcite ;)
Kdyztak se domluv s Baudym, ze by to navazalo, az tahle cast serialu zase skonci...a pak se ozvi :)
Re: Kdy CVS nepouzivat
celé vláknoJestli muzu mluvit za sebe: 100x NE a jeste vic!!!
Cim driv takovy clanek vyjde tim lip, protoze uzivatele a experimentatori aspon budou vedet jestli to (CVS) maji zkusit nebo ne.
Navic, osobne mne tento pohled docela zajima -
treba zase zjistim ze vsechno delam blbe... ;-)
Re: Kdy CVS nepouzivat
celé vláknoJestli to teda dobre chapu, tak 100xNe jepro pouzivani cvs. Co je teda lepsi/jednodussi/praktictejsi/spolehlivejsi misto toho pouzivat ?
Re: Kdy CVS nepouzivat
celé vláknoCo treba TLA alias gnu arch.
Re: Kdy CVS nepouzivat
celé vláknoAno tla. Tla mi prijde jako hodne obskurni software. Pokousel jsem se rozbehnout alespon klienta, kdyz jsem potreboval zdrojove kody pro wisp. Nicmene jsem to po nekolika neuspesnych pokusech vzdal. Docela by me zajimalo srovnani tla s cvs a taky, zdali jste to nekdo jiz pouzival. Mozna by se to veslo take do clanku o nevyhodach cvs, treba proc je tla lepsi (jestli vubec).
Re: Kdy CVS nepouzivat
celé vláknoO TLA a SVN budou zvlastni clanky.
Re: Kdy CVS nepouzivat
celé vláknoOsobne k necemu takovemu smeruji pote, co se vyporadam s CVS, ovsem moje nabizena odpoved bude zrejem rozvedene "pokud mozno nikdy, ovsem nekdy neni zbyti" ;-). Ja snad behem tohoto tydne dojedu a Johance nasubmituju zbytek CVS, pak by ses do toho mohl vlozit se clankem ty a ja bych pak mohl serii pokracovat dal (vice mene na tema "a jak se to da delat lepe"). Kdyztak se muzeme podrobneji domluvit mailem.
pristup pres ssh
celé vláknoTen popis pristupu pres ssh je nejaky zmateny. Pri teto metode se totiz server vubec nepouziva a proste se jen vyuzije faktu, ze ssh umoznuje spoustet vzdalene programy, tedy
cvs -d 'ext:user@nekde:/dir' checkout
je ekvivalentni
ssh user@nekde 'cvs -d '/dir' checkout'
Re: pristup pres ssh
celé vláknoFakt? Nezjednodušil jste to poněkud? Třeba jak se to cvs spustene nekde dostane k lokálním datům?
Re: pristup pres ssh
celé vláknoTo neni uplne presne. CVS totiz na druhe strane _vzdycky_ spousti prikaz "cvs server" a s tim pak komunikuje sifrovanym kanalem pomoci CVS protokolu.
Tenhle pristup ma tu vyhodu, ze nekterym uzivatelum muzete dat jen CVS pristup bez shellu. Staci do jejich ~/.ssh/authorized_keys pred samotny klic pridat:
command="cvs server" ssh-rsa AAAAB3NzaC...
Re: pristup pres ssh
celé vláknoOsobne bych s tim tvrzenim ekvivalence byl ponekud opatrnejsi (jak podotkl Michal Ludvig, spousti se cvs server, pouhe cvs checkout by vycheckoutovalo modul do nejakeho adresare na vzdalenem serveru a to nam moc nepomuze). Ovsem jinak se pokorne sklanim a omlouvam, mel jsem explicitne zminit, ze v takovem pripade neni nutne spoustet na serveru pserver.
Vanocni darek
celé vláknoPokud se domnivate, ze je autor uplne divny, kdyz v druhe pulce ledna mluvi o Vanocich, tak vezte, ze to psal jeste nekdy kolem Noveho roku ;-).
Bezpecnost vzdaleneho pristupu
celé vláknoTrochu jsem v clanku take postradal rozebrani problematky bezpecnosti z hlediska povoleneho pristupu k pocitaci.
Dat nekomu read-only pristup do CVS (pres pserver nebo ssh) je docela bez problemu (pokud pomineme chyby v CVS).
Bohuzel co je horsi, write pristup do CVS znamena takrka ekvivalent shellu, nebot uzivatel muze pres ruzne wrappery (skripty, ktere se mohou napriklad pri commitu poslat mail s informacemi o commitovanych zmenach) dostahnout spusteni jim urcenych prikazu. Detaily jsem nezkoumal, mozna je cesta jak nakonfigurovat CVS tak, aby toto nebezpeci bylo eliminovano, ale pravdepodobne za cenu omezeni funkcnosti. Jestli budu psat slibeny clanek, slibuji, ze detaily prozkoumam :-)
Re: Bezpecnost vzdaleneho pristupu
celé vláknoSpousteni pserveru bych radsi vubec nedoporucoval.
Ad zaDESování hesla
celé vláknoopenssl passwd "supertajne"
openssl je obycejne pritomno.
dofrasa
celé vláknoteraz ked som naucil polku firmy vratane ekonomov klikat vo WinCVS sa dozviem ze existuju aj progresivnejsie nastroje :((
akeze to vlastne su ?
inak neviem lidi ako vy ale ja ked volim soft co vo firme nasadime tak sa na freshmeate orientujem podla popularity (a preto mame teraz cvs, mantis a pod.) .. co pouzivate vy, ake kriterium ?
Re: dofrasa
celé vláknoHm, my se v praci rozhodujem podle toho jestli dany SW resi to co potrebujeme resit. Jestli je popularni nebo ne je nam putna...
Re: dofrasa
celé vláknoTo je pochopitelne prvni predpoklad. Ale co kdyz stejny problem resi nekolik projektu. Co pak? Jak poznat ten, ktery se bude dale rozvijet od tech, co treba brzo zhynou?
soubor passwd
celé vláknoAhoj vsichni.
Mam problem s pristupem na cvs pres sit (pserver). Vubec jsem nenasel ve svem reposity adresari soubor passwd. Tak jsem jej vytvoril a naspal jsem do nej:
bernos:moje zakodovane heslo:bernos
No a vubec se nemuzu pripojit. Porad to pise login aborted a connection refused. Soubor passwd je ulozen takto:
/home/bernos/testrepCVS/CVSROOT/passwd
Nevite nekdo, jak to mam nastavit, aby to jelo?
Re: soubor passwd
celé vláknoJa som to riesil prikazom cvsd-passwd, v tvojom pripade by to bolo asi takto:
# cvsd-passwd /home/bernos/testrepCVS +bernos
Subor passwd sa vytvori sam a pridaju sa don spravne hodnoty (cvsd-passwd sa pyta na heslo, podobne ako passwd)
Server
celé vláknomuzu nejak nakonfigurovat a pustit server kdyz nemam rootovska privilegia?
ssh CVS server bez nutnosti uctu
celé vláknoJe %subj% mozny? Nechce se mi do systemu pridavat dalsi 4 uzivatele (kdyz dam pouze jednoho, jak poznam ktery co kde zmenil?)
Re: ssh CVS server bez nutnosti uctu
celé vláknoPotrebujes mat ucet na serveri, aby si sa dokazal nan prihlasit pomocou ssh.
BTW: Ucet sa da obmedzit, aby sa nedalo na server normalne nalogovat, iba tam spustat cvs.

