• Nie Znaleziono Wyników

zarz ˛ adzanie ´zródłami

N/A
N/A
Protected

Academic year: 2021

Share "zarz ˛ adzanie ´zródłami"

Copied!
48
0
0

Pełen tekst

(1)

Systemy Kontroli Wersji

zarz ˛ adzanie ´zródłami

Marcin Gryszkalis

dagoon@math.uni.lodz.pl

Wydział Matematyki Uniwersytetu Łódzkiego Łódź 2003

(2)

VCS a SCM

(3)

VCS a SCM

VCS = Version Control System

SCM = Software Configuration Management

VCS SCM

(4)

Systemy SCM

Zarz ˛adzanie kodem ´zródłowym (VCS)

Zarz ˛adzanie zmianami i obsługa bł ˛edów

Zarz ˛adzanie budowaniem

Obsługa procesów tworzenia (zatwierdzanie itp.)

Zarz ˛adzanie projektem

(5)

Systemy SCM

Zarz ˛adzanie kodem ´zródłowym (VCS)

Zarz ˛adzanie zmianami i obsługa bł ˛edów

Zarz ˛adzanie budowaniem

Obsługa procesów tworzenia (zatwierdzanie itp.)

Zarz ˛adzanie projektem

(6)

Systemy SCM

Zarz ˛adzanie kodem ´zródłowym (VCS)

Zarz ˛adzanie zmianami i obsługa bł ˛edów

Zarz ˛adzanie budowaniem

Obsługa procesów tworzenia (zatwierdzanie itp.)

Zarz ˛adzanie projektem

(7)

Systemy SCM

Zarz ˛adzanie kodem ´zródłowym (VCS)

Zarz ˛adzanie zmianami i obsługa bł ˛edów

Zarz ˛adzanie budowaniem

Obsługa procesów tworzenia (zatwierdzanie itp.)

Zarz ˛adzanie projektem

(8)

Systemy SCM

Zarz ˛adzanie kodem ´zródłowym (VCS)

Zarz ˛adzanie zmianami i obsługa bł ˛edów

Zarz ˛adzanie budowaniem

Obsługa procesów tworzenia (zatwierdzanie itp.)

Zarz ˛adzanie projektem

(9)

Systemy VCS

Repozytorium plików

Sledzenie zmian´

Odtwarzanie stanów

Regression bugs

Współpraca wielu autorów (programistów) potrzebuj ˛acych dost ˛epu do repozytorium

(10)

Systemy VCS

Repozytorium plików

Sledzenie zmian´

Odtwarzanie stanów

Regression bugs

Współpraca wielu autorów (programistów) potrzebuj ˛acych dost ˛epu do repozytorium

(11)

Systemy VCS

Repozytorium plików

Sledzenie zmian´

Odtwarzanie stanów

Regression bugs

Współpraca wielu autorów (programistów) potrzebuj ˛acych dost ˛epu do repozytorium

(12)

Systemy VCS

Repozytorium plików

Sledzenie zmian´

Odtwarzanie stanów

Regression bugs

Współpraca wielu autorów (programistów) potrzebuj ˛acych dost ˛epu do repozytorium

(13)

Systemy VCS

Repozytorium plików

Sledzenie zmian´

Odtwarzanie stanów

Regression bugs

Współpraca wielu autorów (programistów) potrzebuj ˛acych dost ˛epu do repozytorium

(14)

Jak działa system VCS

(15)

CVS: login

login - logowanie do repozytorium

konieczne przy zdalnym dost ˛epie

mo˙ze bazowa´c na ró˙znych metodach autentykacji (pserver, GSSAPI)

$ cvs -d :pserver:user@example.pl:/home/cvsroot login Logging in to :pserver:user@example.pl:/home/cvsroot CVS password:

$ cvs -d :pserver:user@example.pl:/home/cvsroot checkout foo

(16)

CVS: login

login - logowanie do repozytorium

konieczne przy zdalnym dost ˛epie

mo˙ze bazowa´c na ró˙znych metodach autentykacji (pserver, GSSAPI)

$ export CVSROOT=:pserver:user@example.pl:/home/cvsroot

$ cvs login

Logging in to :pserver:user@example.pl:/home/cvsroot CVS password:

$ cvs checkout foo

(17)

CVS: checkout

checkout - pobranie pliku/projektu z repozytorium

mo˙zna operowa ´c na calych drzewach katalogów lub tzw. modułach

mo˙zna operowa ´c na ró˙znych wersjach pliku

update - pobranie pliku z repozytorium (uaktualnienie)

(18)

CVS: commit

commit - zapisanie zmian w repozytorium

czasami okre´slane jako "check in"

automatycznie zwi ˛eksza numer wersji

oczekuje komentarza

(19)

Wersje

pliki s ˛a w ró˙znych wersjach (ang. revision)

aplikacje s ˛a w ró˙znych wydaniach (ang. release)

(20)

CVS: diff

diff - porównanie ró˙znych wersji pliku

domy´slnie porównuje lokaln ˛a kopi ˛e z aktualn ˛a wersj ˛a w repozytorium

(21)

CVS: log

log - historia zmian danego pliku

wyswietla liste zmian (komentarzy, które zostały podany podczas operacji commit)

(22)

CVS: annotate

annotate - zawarto ´s´c pliku, z oznaczeniem kto co zrobił

czasami oznaczane jako ’blame’

(23)

Gał˛ezie

Jeden projekt mo˙ze by ´c rozwijany w kilku wydaniach jednocze ´snie

np. j ˛adro Linuxa: 2.2.x, 2.4.x, 2.5.x

mo˙zliwo´s´c wielokrotnego rozdzielania gał ˛ezi

mo˙zliwo´s´c ł ˛aczenia gał ˛ezi

(24)

Wydania - tagi

Oznaczenie konkretnego momentu w ˙zyciu projektu

Pozwala odnosi´c si ˛e do konkretnego wydania

Pozwala wygodnie rozgał ˛ezia ´c

tag HEAD - o´s rozwoju

(25)

Słowa kluczowe

Specjalne wzorce podmieniane w czasie operacji zapisu (commit)

$Id$ - charakterystyczny identyfikator

$Id: actions.txt,v 1.9 2003/04/10 01:22:55 mg Exp $

$Date$ - data zapisu wersji

$Author$ - autor (kto zapisał)

(26)

Dost˛epne systemy VCS i SCM

(27)

Systemy VCS

Open Source: RCS, CVS, Subversion

Pół-komercyjne: BitKeeper, Perforce

Komercyjne: SCCS, Microsoft SourceSafe, Forte Code Management Software, Rational ClearCase, Borland StarTeam

Inne: VMS Filesystem

(28)

SCCS

Source Code Control System

Stary komercyjny system VCS

Obecnie znaczenie raczej historyczne

CSSC - Odpowiednik z rodziny GNU

http://cssc.sourceforge.net

(29)

RCS

Revision Control System

Klasyczny system kontroli wersji

OpenSource, Licencja - GPL

Bezpo´sredni dost ˛ep do plików wersji

Tylko lokalny

Bazuje na blokadach

(30)

CVS

Concurrent Versions System

OpenSource, Licencja - GPL

Format plików "prawie" zgodny z RCS

"Concurrent" - pozwala na jednoczesne wprowadzanie zmian przez wiele osób

http://cvshome.org

(31)

Subversion

Zaprojektowany jako nast ˛epca CVSa

OpenSource, Licencja - Apache/BSD-style

Du˙zo rozszerze ´n wzgl ˛edem CVSa

Cały czas w trakcie intensywnego rozwoju

http://subversion.tigris.org

(32)

BitKeeper

Komercyjny system kontroli wersji

Udost ˛epnia mo˙zliwo ´s´c darmowej obsługi projektów OpenSource

J ˛adro Linuksa

http://bitkeeper.com

(33)

Perforce

Komercyjny, nowoczesny SCM

U˙zywany przez: SAP, Nvidia, SGI

Mo˙zliwo´s´c darmowego wykorzystania przy projektach OpenSource (m.in. OpenWatcom)

http://www.perforce.com

(34)

Microsoft SourceSafe

Komercyjny VCS

Standard dla narz ˛edzi MS

Oparty na współdzielonym katalogu

Microsoft zaleca - nie przekracza ´c 3GB

Nie obsługuje stref czasowych

http://msdn.microsoft.com/ssafe/

(35)

Forte Code Management Software

Komercyjny produkt Sun Microsystems

Dawniej Sun TeamWare, oparty na SCCS

Kompletny system SCM

http://wwws.sun.com/software/(...)

(36)

Rational ClearCase

Komercyjny kompletny SCM

Wspiera standard UCM (Unified Change Management)

Prawdopodobnie jeden z najsilniejszych SCM wogóle

Bardzo du˙ze wymagania sprz ˛etowe (serwer)

http://www.rational.com/products/clearcase/

(37)

Borland StarTeam

Komercyjny kompletny SCM

http://www.borland.com/starteam/index.html

(38)

System plików VMS

System plików ze wsparciem dla kontroli wersji

Dost ˛epny w systemach VMS, tak˙ze OpenVMS (dla platform VAX i Alpha)

Obejmuje wszystkie działania w systemie

http://www.openvms.org

(39)

Wady i Zalety: cvs, snv, bk

(40)

CVS - cechy

Zalety

Dojrzały system

Bardzo szerokie wsparcie, integracja z narz ˛edziami

Standard Wady

Problemy z plikami binarnymi i nie-ASCII

(41)

Subversion - cechy

Wersjonowanie katalogów, rename, symlinks

Atomic commits

Apache/WebDAV jako podstawa komunikacji sieciowej

Algorytmy obsługi plików binarnych (tak˙ze diff!)

Łatwo parsowalne wyj ´scie

(42)

BitKeeper - cechy

Hierarchiczne repozytoria

Changesets

Rollback (nazwy, zawarto ´s´c)

Triggery

Dost ˛epny na wi ˛ekszo ´sci platform (klient?)

Sumy kontrolne

(43)

CVS - narz˛edzia

(44)

CVS - klienci

command-line

SmartCVS (Java, zamkni ˛ety, darmowy w wersji "community")

WinCVS (GTK, GPL)

TortoiseCVS (tylko Windows, GPL)

pluginy

(45)

CVS - klienci www

Bonsai

ViewCVS (Python)

CVSWeb

(46)

CVS - inne

cvsup (klient i serwer)

CVS-NT (serwer)

(47)

Pytania?

(48)

Prosper

Prezentacja wykonana przy u˙zyciu pakietu

prosper

dla systemu LATEX

http://prosper.sourceforge.net

Cytaty

Powiązane dokumenty

Wskaźniki oparte na izoprenoidach łańcucho- wych i arylowych świadczą o długotrwałych okresach wystę- powania fotycznej strefy anoksycznej (rysunek 6).. Próbkę M-3 pobrano

Bij deze proefopstelling is uitgegaan van een verticale schroeftransporteur die in hoofdlijnen identiek is aan een transporteur met inlaatbunker die door Van Beek standaard

With the change history view, we aim to learn whether (i) production code has an associated (unit) test; and (ii) whether these are added and modified at the same time.. As such,

Aby dostać się do okna służącego do tworzenia menu głównego, należy zaznaczyć komponent MainMenu1 , a następnie dwukrotnie kliknąć myszką pole Items karty zdarzeń

w konse- kwencji, podzielając pogląd Sądu najwyższego, przy formułowaniu stosownych posta- nowień umowy spółki należy pominąć w katalogu zdarzeń powodujących umorzenie

Pamiętnik Literacki : czasopismo kwartalne poświęcone historii i krytyce literatury polskiej 9/1/4,

Firmy fintech mogą również skorzystać z umieszczania blokad cyfrowych na kopiach swoich prac, aby zapewnić dodatkowe bezpieczeństwo. Obejście blokad cyfrowych w

Za każdą dobrą odpowiedź otrzyma się 2 punkty, za każdą złą -1 punkt, za brak odpowiedzi 0 punktów?. Na rozwiązanie testu będzie