rcs i cvs - dkorunickontrola revizija [revision control system] ... značajke • potpuna kontrola...

32
RCS & CVS / str. 1 RCS i CVS priredio: Dinko Korunić verzija 1.0, svibanj 2001.

Upload: others

Post on 22-Dec-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 1

RCSi

CVS

priredio: Dinko Korunićverzija 1.0, svibanj 2001.

Page 2: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 2

Ciljevi prezentacije

• prikaz osnovnih značajki paketa RCS – instalacija paketa na sistem– korištenje za jednog i više korisnika

• prikaz osnovnih značajki paketa CVS– instalacija na sistem– konfiguracija– korištenje za jednog i više korisnika– pristup izvana

Page 3: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 3

Potrebno predznanje

• osnovna računalna pismenost– datoteke, direktoriji, hijerarhija– korištenje tipkovnice, miša

• poželjno poznavanje– osnovnog rada u nekom tekst editoru ili uređivaču

teksta– pojam zaključavanja datoteka– korištenje diff, patch i interdiff alata– rsh, ssh

Page 4: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 4

1. Paket RCS

Kontrola revizija[Revision Control System]

Page 5: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 5

Ideja paketa

• vođenje zapisnika o svim zahvatima na danom tekstualnom materijalu zbog:– dohvatljivosti– ažurnosti

• putovanje kroz “vrijeme” u bilo kojem trenutku

Page 6: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 6

Značajke

• potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje dosadašnjih promjena, tekstualni opis promjene

• mogućnost kooperacije više ljudi od kojih svatko radi određeni dio (*)

• automatsko označavanje radne verzije

Page 7: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 7

Izvedba

• izvršne datoteke:– ci, co, rcs– rcsdiff, rcsmerge, rlog

• man stranice:– rcsintro– rcsfile– stranice za individualne naredbe

• CVS dokumentacija

Page 8: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 8

Početak rada (1)

• stvara se početni materijal:vi ff.c

• naredbom ci se stvara inicijalna bibliotekaverzija i briše original:mkdir RCS (opcionalno!)ci ff.c

• naredbom co se dobiva posljednja verzijana čitanje, odnosno čitanje i pisanje:co ff.c odnosno co –l ff.c

Page 9: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 9

Početak rada (2)

• daljnje editiranje teksta i unošenje promjena:vi ff.c

• koje smo promjene izvršili od posljednje verzije?rcsdiff ff.c

• snimi izmjene u biblioteku i napravi novu verziju:ci ff.c

Page 10: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 10

Višekorisničko korištenje

• sa co –l je nužno zaključavanje kad više ljudi radi na istim datotekama

• moguće je isključiti/uključiti takvo ponašanje pomoćurcs –U ff.crcs –L ff.c

• snimanje bez brisanja originalaci –l ff.c ili ci –u ff.c

Page 11: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 11

Automatsko identificiranje

• automatsko označavanje revizije u tekstu:/* $Id$ */static rcsid[]=$Id$

• stvarni primjeri:$Id: dcc.c,v 1.3 2001/04/08 20:17:57 kreator Exp $

static char rcsid[] = "$Id: pam_skey.c,v 1.37 2001/04/12 21:13:35 kreator Exp $";

Page 12: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 12

Tekstualni opis verzije

• alpha version– softver koja je tek napisan i sada se interno

testira njegovo inicijalno ponašanje• beta version

– softver koji je spreman za javno testiranje• release candidate

– softver koji je planiran za izdavanje ako se ne uoče novi bugovi

• release

Page 13: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 13

Stabilno, nestabilno

• release– izdani softver koji možda i ima grešaka, ali je

zamrznut [frozen] u razvoju– parne verzije

• stable– baziran na zadnjoj izdanoj verziji, parnih verzija,

mijenja se samo kad se nađu pogreške• current

– neparne verzije (u nekim slučajevima)

Page 14: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 14

Konvencije numeriranjaverzija

• major release– broj ispred točke u oznaci verzije (1.xx)– označava veće promjene u kodu– nova funkcionalnost, sučelje, API

• minor release– broj iza točke u oznaci verzije (xx.34)– manje ispravke– manje izmjene postojećeg koda

Page 15: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 15

Grananje razvoja

• želite iskazati novu važnost promjenom verzije koda

• ručno povećanje trenutne verzije:ci –r2 ff.c– posljedica je verzija 2.1

• izravan utjecaj na grananje softvera:ci –r 1.3.1 ff.c– posljedica: verzija 1.3.1.1

Page 16: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 16

Grananje verzija

2.12.11.2.2.21.2.2.2

radna verzija

1.3.1.1.1.3.1.1.1.2.1.31.2.1.3

1.2.1.1 1.2.2.11.2.2.11.31.3

1.21.2grananje

1.2.2.1.1.11.2.2.1.1.1

1.2.1.1

1.11.1 inicijalna verzija

Page 17: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 17

2. Paket CVS

Sistem dijeljenih verzija[Concurrent Versions System]

Page 18: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 18

Ideja paketa

• ugodno okruženje za RCS (npr. gCVS)• rad na udaljenom poslužitelju i na lokalnom

računalu• automatizacija• sinkronizacija i izbjegavanje konflikata u kodu• više projekata = repozitorij• anonimni pristup, korisnici, web pristup• označavanje verzija slovno

Page 19: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 19

Što je potrebno za rad?

• lokalni ili udaljeni repozitorij• cvs izvršna datoteka• .cvsrc konfiguracijska datoteka (opcionalno)• CVS varijable specificirane u radnoj ljusci

(opcionalno)• dodatne naredbe (nisu dio osnovnog

paketa):– za automatsko upravljanje repozitorijem– za upravljanje ili analizu logova

Page 20: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 20

Repozitorij (1)

• direktorij koji sadržava CVS projekte hijerarhijski složene u zasebne direktorije

• predstavlja osnovni direktorij za projekte• sadržava i skripte/programe za automatizaciju• sadržava popise tagova i povijest promjena• CVS projekti su snimljeni kao RCS datoteke

(primjer: pam_skey.c,v)

Page 21: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 21

Repozitorij (2)...cvswrapperscvswrappers,v...configconfig,v...

/usr/local/cvsroot/usr/local/cvsroot

staza

CVSROOT

podaci o projektima i alatiCVSROOT

PAM_SkeyPAM_Skey

hybservhybserv

datoteke

...ConfigureLog,vpam_skey.c,vpam_skey.h,v...projekti datoteke...

Page 22: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 22

Izvedba paketa

• izvršna datoteka cvs može služiti kao– klijent (lokalno)– poslužitelj (servis)

• korisnik ili administrator sam radi svoj CVS repozitorij zajedno sa svim modulima, projektima, programima za automatizaciju

• man stranice

Page 23: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 23

Korištenje

• općeniti format CVS naredbe:cvs [cvs_opcije] naredba [naredba_opcije] [naredba_argumenti]

• detalji:– cvs – ime samog izvršnog programa– cvs_opcije – utječu na sve naredbe– naredba – podnaredba CVS sustava– naredba_opcije – podešavanja specifična naredbi– naredba_argumenti – argumenti samoj naredbi

Page 24: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 24

Primjer korištenja (1)

• radimo na projektu “tc” koji se nalazi u centralnom repozitoriju

• stvorimo lokalnu kopiju:cvs checkout tc

• u direktoriju se nalazi:CVS Makefile tc.c

• sve je spremno za lokalne modifikacije• promjene ne utiču na repozitorij

Page 25: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 25

Primjer korištenja (2)

• promjene su gotove, unesete ih sa:cvs commit

• ili ako je riječ samo o promjenama određene datoteke:cvs commit tc.c

• slijedi provjera stanja i uspoređivanje razlika, kao i interaktivni unos opisa promjena

• repozitorij sinkroniziran sa lokalnom kopijom

Page 26: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 26

Lokalna kopija

• nema RCS arhiva!• u lokalnom CVS direktoriju:

– Root – staza do repozitorija– Repository – relativna pozicija projekta u

repozitoriju– Entries – lista direktorija i datoteka– Entries.Log, Entries.Backup, Entries.Static, Tag– Checkin.prog, Update.prog, Notify, Notify.tmp– Base, Baserev, Baserev.tmp, Template

Page 27: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 27

Popis podnaredbi

• add, admin, annotate, checkout, commit, diff, edit, editors, export, history, import, init, log, login, logout, rdiff, release, remove, rtag, status, tag, unedit, update, version, watch, watchers

• svaka od njih ima pripadne opcije, može utjecati rekurzivno ili samo na jednu datoteku, na repozitorij ili samo lokalno, itd.

• pomoć se ispisuje automatski kad dođe do greške

Page 28: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 28

Ključne riječi

• u materijalu koji obrađuje prepoznaje neke ključne riječi i zamjenjuje ih:$Author$, $Date$, $Header$, $Id$,$Name$, $Locker$, $Log$, $RCSfile$,$Revision$, $Source$, $State$

• pomoću naredbe “ident” (RCS) ili “what” (SCCS) možemo saznati njihov sadržaj

• služe za jednostavnije prepoznavanje datoteka izvan repozitorija ili direktorija:$Id: dcc.c,v 1.3

Page 29: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 29

CVS servis

• pripremljeni repozitorij• inetd.conf:

2401 stream tcp nowait root/usr/local/bin/cvs cvs -f --allow-root=/usr/cvsroot pserver

• $CVSROOT/CVSROOT/passwd:anonymous:bach:ULtgRLXo7NRxsqproj:XR4EZcEs0szik:pubcvs

Page 30: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 30

Rad na udaljenom računalu (1)

• CVS_RSH varijabla i cvs klijent, ssh• CVS repozitorij = CVSROOT:

:ext:[email protected]:/usr/local/cvsroot

• anonimni CVS pristup::pserver:[email protected]:/cvsroot/openprojects

• CVS Web kao cgi skripta za anonimni pristup bez posebnih klijenata

Page 31: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 31

Rad na udaljenom računalu (2)

• opći slučaj specificiranja lokacije::metoda:korisnik@host:/repozitorij

• mogućnosti autentifikacije:– pserver – standardni CVS poslužitelj– gserver – GSSAPI (generički interface)– kserver – Kerberos– ext – eksterni rsh program (najčešće!)– fork – lokalni disk sa remote protokolom– local – lokalni disk

Page 32: RCS i CVS - dkorunicKontrola revizija [Revision Control System] ... Značajke • potpuna kontrola verzija preko tekstualnog sučelja: napredovanje i nazadovanje u verziji, pregledavanje

RCS & CVS / str. 32

Literatura

• man stranice• TexInfo dokumentacija• CVS book• Web stranice CVS projekta:

http://www.cvshome.orghttp://www.loria.fr/~molli/cvs-index.html

• razni CVS linkovi