«« ( Date ) »» // «« ( Thread ) »» // csidc - 2004

CVS uputstvo

by Caslav Bozic
petak, 16. april 2004 - 19:38.

U atacmentu je tekstualni fajl sa Draganovim i Aleksandrovim uputstvom za
CVS, gde su u komande ubaceni konkretni parametri za nas projekat.

Pozdrav.

Caslav

CVS, SSH i :pserver: by Aleksandar



Ovaj dokument opisuje pristup CVS serveru na racunaru titan.etf.bg.ac.yu. Opisan je pristup sa racunara koji radi pod Windows operativnim sistemom.

Sta je potrebno za pristup?

Downloadujte sledece programe:



cvs.exe http://www.cvshome.org/downloads.html



plink.exe http://www.chiark.greenend.org.uk/~sgtatham/putty (0.52 ili visa). Verzija 0.51 ne radi.



Morate imati i ovo:



Inicijalizovan projekat. Ovo mozete da dobijete od Gvozdena .



Kako se pristupa?

U MS-DOS promptu (Command prompt na NT-u) pokrenite plink sa sledecim parametrima:



plink.exe cvs@titan.etf.bg.ac.yu -L 2401:localhost:2410



Kada vam sistem zatrazi sifru, pritisnite enter. Prikazace vam se kratak tekst u kome pise kako se pristupa serveru.



Sledece sto treba da uradite jeste da se prijavite na server.



Otvorite novi MS-DOS prompt.



cvs.exe -d:pserver:VAS_USERNAME@localhost:/VAS_CVSROOT login

>>> cvs.exe -d:pserver:caslav@localhost:/titanium/public/csidc04 login



Unesite sifru.



Sada ste spremni da koristite server. (opsirnije kasnije)



cvs.exe -d:pserver:VAS_USERNAME@localhost:/VAS_CVSROOT co MODULE



Kada zavrsite sa radom, uradite sledece:



cvs.exe -d:pserver:VAS_USERNAME@localhost:/VAS_CVSROOT logout



Zatvorite MS-DOS prompt





Comment

A LINUX?

Posted by: dragan at 2002-11-25



Inace za taj neki glupavi Linux koga izgleda niko ne koristi ekvivalent je: ssh cvs@titan.etf.bg.ac.yu -L2401:localhost:2410



Ostalo za cvs vazi.



Sto lepo ne stavi na port 2401, bez ovih egzibicija? ax? ax? ax?



CVS - osnovna upotreba by Dragan



Ovde mozete, ali i ne morate naci osnovne komande CVS-a. Neke informacije mogu biti i netacne. Zasto uopste citate ovaj tekst kad sve lepo pise na http://www.cvshome.org/ na 349441 strana?

USAGE: cvs [globalne-opcije] <komanda> [opcije-komande]

Jedina korisna globalna opcija je -z9 sto znaci koriscenje maksimalne kompresije.



Komande

checkout

cvs [-z9] -d<cvs-root> checkout <modul>

>>> cvs.exe -d:pserver:caslav@localhost:/titanium/public/csidc04 co -d E:\CSIDC\cvs .



Kreira se kompletna struktura direktorijuma kao i na serveru, pocev od direktorijuma modul. U direktorijumima pod nazivom CVS kreiraju se CVS-ovi interni podaci o fajlovima. Bilo uz pomoc tih fajlova, bilo preko komunikacije se serverom, najvaznije informacije koje CVS zna o svakom fajlu u vasem direktorijumu su verzija i da li je fajl lokalno modifikovan == vasa verzija se razlikuje od verzije na serveru.



Kao modul mozete staviti i . (tacku), samo ne menjajte nista u CVSROOT direktorijumu. Bar dok ne procitate i shvatite ceo zvanicni CVS manual.



>>> Iza -d se nalazi lokalni direktorijum koji ce predstavljati koren projekta.



status

cvs status

cvs status <file>



Kaze vam koja je verzija na serveru, koja kod vas i sledece:



Up-to-date - imate svezu kopiju (istu verziju)

Locally Modified - imate svezu kopiju, ali ste vrsili izmene

Needs Patch - imate nemodifikovanu, ali staru verziju

Needs Merge - modifikovali ste fajl, a neko je u medjuvremenu postavio novu verziju (imate modifikovanu staru verziju)

Locally Added - fajl ne postoji na serveru, a dodat je komandom add

commit

cvs commit -m 'implementirano mlacenje prazne slame'

cvs commit -m 'implementirano mlacenje prazne slame' slama.cpp

>>> cvs commit -m "implementirano mlacenje prazne slame" // za Win moraju pravi navodnici



Predaja fajlova serveru. Za ovu komandu je bitno da fajlovi ne budu zastareli. Tj. smeju biti samo Up-to-date i Locally Modified. Ovom komandom ce ovi drugi biti osvezeni na serveru, njihova trenutna verzija ce porasti. Nakon uspesnog commit-ovanja, fajl mora imati status Up-to-date (osim ako neko nije izmedju vaseg commit i status - commit-ovao svoje izmene).



Ako ne napisete poruku opcijom -m, bice vam ponudjeno da to isto uradite u editoru. Mrzim tu pojavu!!! ARGH!!!



update

cvs update [-d] cvs update <file>

Vrhunac genijalnosti CVS-a. Osvezava vase fajlove. U zavisnosti od statusa fajla i sta je sa njim uradjeno, dobicete po jedno slovo ispred imena fajla.



Moguce je:

U - fajl je bio zastareo (Needs patch), nova verzija je dovucena

M - fajl je bio zastareo, ali modifikovan (Needs merge), nova verzija je dovucena i u nju dodate vase modifikacije (sada je Locally Modified) - vi nastavljate sa editovanjem toga sto se poceli, sa dodatim izmenama koje je neki drugi korisnik vrsio

M - fajl je bio svez i modifikovan (Locally Modified), takav je i ostao

A - fajl ste dodali komandom add, ali niste uradili commit (ne postoji na serveru)

R - fajl ste oduzeli komandom remove, ali niste uradili commit (jos uvek postoji na serveru)

C - CONFLICT!!! Neko je izvrsio MNOGO gadne ispravke tako da merge ne moze biti izvrsen. Morate rucno da taj konflikt razresite. Obicno je za ovo potrebno da oboje menjate iste ili vrlo, vrlo bliske linije u kodu, ali to nije i dovoljan uslov :) Kad vam se desi konflikt, editujte rezultujuci fajl... on sadrzi i stare i nove segmente, pa vi vidite sta dalje... Potrazite liniju koja pocinje sa <<<<<<<



Opcija -d ce obezbediti dodavanje novih direktorijuma u vas radni direktorijum. Razlog zasto to nije podrazumevano je slucaj kada vi ne zelite da dovlacite celo stablo direktorijuma.



add/remove

cvs add <file>

cvs remove <file>



Dodaje fajl pod kontrolu CVS-a, ali samo u vasoj kopiji. Potrebno je uraditi commit.



diff

cvs diff [-u]

cvs diff [-u] <file>



Pokazuje izmene koje ste vrsili nad fajlom.



Opcija -u znaci da se koristi "unified output format". Smatram da je on pregledniji... probajte sa... probajte bez...



Moze se primetiti da skoro sve komande imaju verziju sa i bez fajla. Sa fajlom je jasno, a ono bez fajla vrsi komandu rekurzivno za sve fajlove pocev od trenutnog direktorijuma.





Update i commit najcesce koristite rekurzivno, a status i diff nad jednim fajlom. U tom slucaju commit ce predati samo modifikovane fajlove i nalepiti svima istu poruku. To je korisno ako ispravka nekog bug-a podrazumeva modifikovanje vise fajlova. Jedna komanda i sve je commit-ovano, a poruka jasno govori zasto.



Eh, da... te poruke citate sa:

cvs log

cvs log <file>

ili bolje iz onog web-cvs browsera, tj. plone-a.



Kraj? Jeeee! Odo da jedem...