2004.03_CVS – system zarządzania wersjami_[Programowanie].pdf
(
708 KB
)
Pobierz
439033848 UNPDF
dla programistów
Zobacz w:
CVS – system zarządzania
wersjami
wijane przez wielu różnych programistów.
Każdy z nich może pracować nad innym
fragmentem kodu. Utrzymanie porządku
staje się w takim przypadku bardzo trudne. W celu ułatwie-
nia pracy programistom powstał
CVS
(
Concurrent Versions
System
), czyli system zarządzania wersjami. Przydaje się on
jednak nie tylko przy tworzeniu oprogramowania – świet-
nie nadaje się również do rozwijania serwisów
WWW
czy
dokumentacji. Można go zastosować właściwie wszędzie,
gdzie tylko występują cyfrowe dane.
Jak to działa?
Wykorzystując
CVS
mamy możliwość zapoznania się
z historią zmian w projekcie. Oprócz tego, możemy
w każdej chwili uzyskać informacje o różnicach pomiędzy
poszczególnymi wersjami plików. Co więcej, w dowolnej
chwili możemy odtworzyć projekt w takiej postaci, w jakiej
znajdował się jakiś czas temu. Możemy nawet rozwijać pro-
jekt równocześnie w kilku kierunkach (tzw. rozgałęzieniach
– ang.
branches
), co pozwala nam na eksperymentowanie
bez naruszania głównej wersji projektu. Jeśli dodać do tego
możliwość równoczesnego dostępu wielu programistów,
system
CVS
okazuje się być bardzo przydatny.
Najważniejszym pojęciem dotyczącym
CVS
jest repo-
zytorium (ang.
repository
), czyli obszar na dysku kom-
putera (lokalnego lub zdalnego), w którym przechowy-
wane są wszystkie informacje na temat poszczególnych
projektów. Każdemu projektowi możemy przyporządko-
wać osobny moduł, czyli po prostu podkatalog w repo-
zytorium.
Wiemy już, że mamy jedno repozytorium z projek-
tem, oraz wiele osób, które mogą z nim pracować. Powsta-
je pytanie, jak to działa. Otóż każdy z programistów (przyj-
mijmy, że nasz projekt jest programem) może pobrać (ang.
checkout
) z repozytorium aktualną wersję projektu. Posia-
da wtedy u siebie kopię roboczą, z którą może pracować.
Rysunek 1.
Wielu webmasterów wykorzystuje CVS w pracach
nad swoimi witrynami
W dalszych etapach pracy nie będzie musiał już pobierać
całości projektu, a jedynie będzie uaktualniał (ang.
update
)
swoją wersję. Jeśli programista dokonał zmian w swojej
kopii roboczej, może je przesłać (ang.
commit
) do repozy-
torium. Może zdarzyć się, że wcześniej jakiś inny progra-
mista wysłał już swoje poprawki. O ile nie kolidują one ze
sobą, to nie będzie problemu. Jeśli jednak zmieniany był
ten sam fragment kodu, to podczas przesyłania będziemy
mieli możliwość zdecydowania, które poprawki i w jakiej
kolejności powinny być wprowadzone.
Warto wiedzieć, że
CVS
może działać nie tylko w trybie
sieciowym, ale również i lokalnym. Jeśli więc sami opraco-
wujemy jakiś projekt, to z powodzeniem możemy wykorzy-
stać
CVS
tworząc repozytorium na dysku własnego kom-
putera.
Przykład użycia
Obudziłem się z potwornym bólem głowy. Jeden rzut
okiem na budzik uświadomił mi, że jest już po południu.
Szybko wstałem i usiadłem przy komputerze – na jutro
muszę mieć skończony program na zaliczenie, a tu jesz-
cze tyle do napisania. Z zadowoleniem stwierdziłem, że
przed zaśnięciem wysłałem wszystkie moje zmiany do
zdalnego repozytorium
CVS
. Sprawdziłem historię zmian
w plikach i ucieszyłem się jeszcze bardziej – koledzy z
grupy dopisali już kilkaset istotnych linii kodu. Ściągną-
łem na dysk nowsze wersje plików i zabrałem się dalej
do pracy.
O autorze:
Autor zakończył studia zaoczne na V roku Informatyki na
Politechnice Opolskiej. Z Linuksem (i ogólnie systemami
uniksowymi) ma styczność od wielu lat. Obecnie admi-
nistruje siecią blokową złożoną z dziesięciu komputerów.
Kontakt z autorem:
autorzy@linux.com.pl
.
58
marzec 2004
Piotr Machej
O
programowanie
Open Source
jest często roz-
cvs
Na drugiej konsoli włączyłem pobieranie z
CVS
uaktual-
nienia mojego ulubionego
MPlayera
, a gdy już wylądowało
na moim dysku, uruchomiłem kompilację.
Tymczasem przyszedł mi do głowy nowy pomysł doty-
czący programu na zaliczenie. Stworzyłem osobną gałąź
projektu, aby nie przeszkadzać kolegom, po czym zacząłem
eksperymenty z kodem. Nawet nie zauważyłem, jak nad-
szedł wieczór. Pomysł okazał się dobry, więc za zgodą reszty
grupy włączyliśmy moje eksperymentalne zmiany do głów-
nego projektu, który w tym czasie znów się rozwinął. Jesz-
cze tylko ostatnie szlify i jutro będziemy mieli piątki z zali-
czenia. Nie da się ukryć, że
CVS
ułatwia pracę grupową.
Instalacja
Pakiet
cvs
znajduje się praktycznie w każdej z popularnych
dystrybucji i w większości przypadków będzie umieszczo-
ny na dysku podczas standardowej instalacji. W przypad-
ku
Auroksa 9.2
pakiet
cvs-1.11.2-10.i386.rpm
znajduje się
na drugiej płycie CD z dystrybucją. Jeśli przypadkiem
CVS
nie jest zainstalowany, możemy doinstalować go samodziel-
nie poleceniem
rpm -Uvh cvs-1.11.2-10.i386.rpm
wydanym
w katalogu
/RedHat/RPMS/
na drugiej płycie CD. W innych
dystrybucjach należy wykorzystać narzędzia właściwe dla
konkretnej dystrybucji.
Niektórych Czytelników może nie zadowolić aktu-
alność pakietów dostarczanych z dystrybucją. W chwili
pisania niniejszego artykułu dostępna już była stabilna
wersja
1.11.11
. Jeśli chcemy zainstalować najaktualniejszą
wersję, warto wejść na domową witrynę projektu (
http://
www.cvshome.org/
) i z sekcji
CVS Downloads
pobrać
najnowszy plik. Po pobraniu możemy rozpakować go
poleceniem
tar xjvf cvs-1.11.11.tar.bz2
(nazwa pliku
dotyczy wersji aktualnej w chwili pisania artykułu).
Przechodzimy do utworzonego podkatalogu polece-
niem
cd cvs-1.11.11
, po czym zapoznajemy się z doku-
mentacją (przede wszystkim z plikami
INSTALL
oraz
README
). Kompilacja i instalacja nie powinna sprawić
problemu – na ogół wystarczy standardowy ciąg pole-
ceń:
./configure
,
make
i
make install
(to ostatnie wydane
z uprawnieniami użytkownika
root
).
Rysunek 2.
Instrukcja pobierania programu MPlayer z CVS jest
umieszczona na witrynie domowej projektu
/cvsroot/mplayer login
Dzięki temu powinniśmy zalogować się anonimowo do
zdalnego repozytorium
CVS
. Po pytaniu o hasło należy po
prostu wcisnąć klawisz [
Enter
]. Następnie wydajemy właści-
we polecenie pobierające aktualne pliki źródłowe:
cvs -z3 -d:pserver:anonymous@mplayerhq.hu:
S
/cvsroot/mplayer co -P main
Dzięki temu w podkatalogu
main/
bieżącego katalogu
zostanie umieszczona najbardziej aktualna wersja źródeł
programu. Dokładne znaczenie poszczególnych opcji zosta-
nie omówione w dalszej części artykułu.
Wykorzystujemy GCvs
Jeśli wolimy korzystać z interfejsu graficznego, to musimy
wykonać nieco inne kroki. W przypadku programu
GCvs
(opisanego dokładniej w rozdziale
Interfejsy graficzne
)
zaczynamy od wybrania opcji
Admin –> Preferences
.
W otwartym okienku w zakładce
General
wpisujemy
w pole
CVSROOT
linię:
Pobieramy dane ze zdalnego serwera
CVS
Większość użytkowników
Linuksa
najczęściej wykorzystu-
je
CVS
do pobierania najnowszych wersji oprogramowania.
Jeśli tylko twórcy konkretnego programu przewidzieli moż-
liwość pobrania plików z repozytorium
CVS
, to opis powi-
nien znajdować się na stronie domowej projektu.
Przykładem niech będzie popularny program
MPlayer
.
Po wejściu na jego witrynę (
http://www.mplayerhq.hu/
homepage/
) możemy przejść do sekcji
Downloads
. Tam, na
samym dole strony (Rysunek 2), znajdziemy sekcję oznaczo-
ną napisem
CVS
. Postępując zgodnie z umieszczonymi tam
informacjami, powinniśmy wydać w konsoli polecenie:
anonymous@mplayerhq.hu:/cvsroot/mplayer
Następnie w sekcji
Authentication
zaznaczamy pole
Pas-
sword ("pserver")
. Wartości te odpowiadają opcji
-d:pse-
rver:anonymous@mplayerhq.hu:/cvsroot/mplayer
z poleceń
wpisywanych w konsoli i wskazują na lokalizację repozyto-
rium, z którego będziemy pobierać pliki. W zakładce
Glo-
bals
warto zaznaczyć opcję
Use TCP/IP compression
– jeśli
ustawimy ją na wartość
3
, to będzie dokładnie odpowiadać
opcji
-z3
z podanego wcześniej polecenia. Sprawia ona, że
dane podczas przesyłania są kompresowane algorytmem
gzip
(dzięki temu powinny szybciej znaleźć się na naszym
dysku). Ostatnia z użytych opcji (
-P
) jest domyślnie usta-
wiona w zakładce
Globals
–
Prune (remove) empty directo-
ries
. Sprawia ona, że po pobraniu plików z repozytorium,
cvs -d:pserver:anonymous@mplayerhq.hu:
S
www.linux.com.pl
59
dla programistów
kasowane są pobrane puste katalogi (oczywiście tylko na
naszym dysku – w repozytorium pozostają bez zmian).
Zmienione opcje zatwierdzamy przyciskiem
OK
.
Teraz możemy zalogować sie do repozytorium. Służy do
tego opcja
Admin –> Login
. Również w tym przypadku na
pytanie o hasło po prostu wciskamy przycisk
OK
. Po chwili
w oknie komunikatów, poniżej linii
cvs -z3 login
, powi-
nien pojawić się napis
*****CVS exited normally with code
0*****
. Skoro zalogowaliśmy się bez problemu, możemy
pobrać pliki źródłowe
MPlayera
. W tym celu wybieramy
opcję
Create –> Checkout module
. W otwartym okienku
przechodzimy do katalogu, w którym chcemy zapisać pliki
i wciskamy
OK
. Pozostaje nam w kolejnym okienku wpisać
nazwę modułu do pobrania (w polu
Enter the module
name...
). W naszym przypadku jest to
main
. Wciskamy
jeszcze raz przycisk
OK
i czekamy, aż pliki znajdą się na
naszym dysku.
Jak widać, do zwykłego pobrania plików wygodniej jest
po prostu wpisać dwa polecenia w konsoli, zamiast klikać
i klikać... Na dłuższą metę interfejs graficzny okazuje się
jednak całkiem przydatny.
Rysunek 3. Po pobraniu projektu do katalogu robocze-
go mamy dostęp do informacji o wersjach poszczególnych
plików
można pobrać plik
gcvs-1.0-1.i386.rpm
(i zainstalować
poleceniem
rpm -Uvh gcvs-1.0-1.i386.rpm
) lub wybrać
pakiet źródłowy
gcvs-1.0-1.src.rpm
(instalujemy go pole-
ceniami:
rpmbuild --rebuild gcvs-1.0-1.src.rpm
,
rpm -Uvh
/usr/src/redhat/RPMS/i386/gcvs-1.0-1.i386.rpm
).
Po instalacji możemy go uruchomić poleceniem
gcvs
.
Okno programu podzielone jest na trzy duże okna. Po
lewej stronie mamy listę katalogów. Możemy w niej wybrać
katalog, w którym akurat chcemy pracować. W górnym
oknie znajduje się spis plików wraz z informacjami na
temat ich aktualności. Wreszcie w trzecim, dolnym oknie,
pojawiają się komunikaty drukowane przez
CVS
.
Program jest przyjemny i wygodny w użyciu, a dzięki
wypisywaniu w oknie komunikatów postaci polecenia,
świetnie nadaje się do nauki
CVS
dla początkujących.
W niniejszym artykule postaram się wskazać, jak można
w
GCvs
wykonać wszystkie opisywane czynności.
Wykorzystujemy CVS lokalnie
Jak już wspomnieliśmy,
CVS
pozwala na pracę w trybie
lokalnym. Dzięki temu możemy stworzyć repozytorium na
dysku naszego komputera i korzystać z niego bez potrzeby
łączenia się z siecią komputerową.
Tworzymy repozytorium
Tworzenie repozytorium zaczynamy od stworzenia katalo-
gu, w którym umieszczane będą wszystkie pliki. Może on
znajdować się w dowolnym, wybranym przez nas miejscu.
Należy jednak pamiętać, abyśmy mieli do niego prawa
odczytu i zapisu. No i oczywiście powinniśmy dysponować
odpowiednią ilością wolnego miejsca na dysku. Przykłado-
wo, niech będzie to katalog
~/repozytorium/
– w naszym
katalogu domowym na pewno możemy zapisywać pliki
i nie potrzebujemy do tego uprawnień użytkownika
root
:
Interfejsy graiczne
Minęły już chyba bezpowrotnie czasy, gdy słowa
Unix
i
Linux
kojarzyły się z czarnym ekranem wypełnionym
białymi literkami. W dobie rozbudowanych środowisk
graficznych coraz trudniej o program, który nie posiadał-
by interfejsu graficznego.
CVS
nie jest wyjątkiem. Posiada
graficzne nakładki działające nie tylko w systemach unikso-
wych, ale również w
Windows
czy
MacOS
.
Adresy witryn niektórych interfejsów graficznych
umieszczone są na końcu artykułu, w ramce
W Sieci
.
Oprócz samych interfejsów graficznych (również tych
dostępnych z poziomu
WWW
), znajdują się tam też odno-
śniki do takich projektów, jak
CVSMonitor
(pozwala śledzić
aktywność w projekcie, wprowadzane zmiany itp.) czy
CVSspam
(program powiadamiający
e-mailem
o zmianach
wprowadzonych w repozytorium).
Poniżej pozwolę sobie
krótko opisać jeden wybrany interfejs graficzny.
mkdir ~/repozytorium
Teraz musimy zainicjować nasze repozytorium. Służy do
tego następujące polecenie:
cvs -d ~/repozytorium init
GCvs
GCvs jest bardzo rozbudowanym i wygodnym klientem
CVS
. Jest to odmiana programu
WinCvs,
przeznaczone-
go dla systemu
Windows
. Istnieje również odmiana tego
programu dla platformy
Mac OS X
–
MacCvsX
. Niezależnie
więc, z której platformy będziemy korzystać, mamy moż-
liwość używania programów o praktycznie identycznych
interfejsach.
Program
GCvs
możemy pobrać z witryny domowej
projektu (
http://cvsgui.sourceforge.net/
), z sekcji
Download
.
Dostępne są zarówno źródła, jak i pakiety
RPM
oraz
DEB
.
Zależnie od posiadanej przez nas dystrybucji, pobieramy
odpowiedni plik i instalujemy. W przypadku
Auroksa
Powyższe czynności wykonujemy tylko raz. Od tego
momentu możemy już korzystać z utworzonego katalogu.
Warto zwrócić uwagę na opcję
-d katalog
. Wskazuje
ona lokalizację repozytorium, do którego odwołujemy
się poleceniem
cvs
. Każdorazowe jej wpisywanie może
być uciążliwe, dlatego lepiej umieścić nazwę właściwego
katalogu w zmiennej środowiskowej
CVSROOT
. W naszym
przykładzie dokonamy tego poleceniami:
CVSROOT=~/repozytorium
export CVSROOT
Możemy te linie dopisać do któregoś z plików wykonywa-
nych w momencie logowania, dzięki czemu nawet po prze-
60
marzec 2004
cvs
logowaniu się zmienna środowiskowa
CVSROOT
będzie
ustawiona. W
Auroksie
takim plikiem jest
~/.bash_profile
.
Od tej chwili możemy pomijać opcję
-d katalog
i stoso-
wać skróconą wersję poleceń (np.
cvs init
).
W przypadku programu
GCvs
pole
CVSROOT
ustawia-
my na
~/repozytorium
, natomiast opcję
Authentication
na
wartość
Local
.
Jeśli chcemy, aby z repozytorium w trybie lokalnym
mogli korzystać inni użytkownicy, warto przygotować je
tak, jak opisano w rozdziale
Tworzymy własny serwer CVS
.
Szczególnie należy zwrócić uwagę na rozdział
Nieupoważ-
nionym wstęp wzbroniony
.
Ciekawe opcje wywołania CVS:
• -d katalog_główny_CVS – pozwala pracować na innym
repozytorium niż zdeiniowane w zmiennej środowiskowej
CVSROOT;
• -e edytor – wskazuje nazwę edytora, który będzie wyko-
rzystywany do wpisywania informacji do rejestru zmian
(przydaje się, jeśli nie chcemy korzystać z domyślnego);
• -n – nie wykonuje żadnych operacji zmieniających repo-
zytorium lub kopię roboczą, a jedynie wypisuje komuni-
katy;
• -z liczba – ustawia kompresję na poziom określony war-
tością liczba.
Umieszczamy projekt w repozytorium
Jeśli rozpoczęliśmy już pracę z naszym projektem, możemy
go teraz umieścić w repozytorium. Załóżmy, że pliki pro-
jektu znajdują się w katalogu
~/projekt/
. Przechodzimy do
niego poleceniem
cd ~/projekt
, po czym wydajemy pole-
cenie:
W naszym poleceniu użyliśmy opcji
-m
, która pozwala
dodać własną informację do rejestru zmian w projek-
cie. W opcji
nazwa_modułu
podajemy krótką nazwę,
którą będzie nosił podkatalog utworzony w katalogu
~/repozytorium/
, zawierający pliki z naszym projektem.
W polu
vendor
możemy wpisać dowolne słowo nie zawie-
rające spacji i znaków specjalnych – np. może to być nasz
przydomek (
nick
). Ostatnia opcja,
release
, pozwala na
użycie symbolicznego określenia numeru wersji. Nazwa
start
odpowiada numerowi
1.1.1.1
.
W
GCvs
wybieramy opcję
Create –> Import module
.
Następnie w otwartym oknie przechodzimy do katalogu,
w którym znajdują się pliki projektu (w naszym przypadku
~/projekt
) i wciskamy
OK
. Jeśli pojawi się okienko z komu-
nikatem błędu, to należy je dokładnie przeczytać i odpo-
wiednio zareagować. Może okazać się przykładowo, że
GCvs
źle odgadnie typ pliku i uzna plik tekstowy za binar-
ny (
BINARY
). W takim przypadku należy wskazać odpo-
wiednią pozycję i wcisnąć
Edit
. Z listy możemy wybrać
jedną z opcji:
Leave unchanged
(nic nie zmieniaj),
Force
binary
(potraktuj plik jako binarny),
Force text
(potraktuj
plik jako tekstowy) oraz
Ignore
(zignoruj).
Warto dbać, aby pliki miały przypisany właściwy typ.
Jeśli plik binarny zapiszemy jako tekstowy, to zostanie on
doszczętnie zniszczony –
CVS
przechowuje pliki tekstowe
wraz z historią zmian zapisaną w nich samych. Z tego
samego powodu nie ma sensu czystych plików tekstowych
przechowywać jako binarnych – wysłanie każdej popraw-
ki do repozytorium wiązałoby się z jego powiększeniem
o kolejny plik.
W kolejnym oknie możemy ustalić jeszcze nazwę
modułu, wpisać komunikat (odpowiednik opcji
-m
) oraz
ustawić wartości pól
Vendor
i
Release
.
Jeśli przesłanie plików do repozytorium zakończyło się
bez błędów, możemy skasować nasz katalog
~/projekt/
wraz
z zawartością. Za chwilę odzyskamy go z repozytorium, już
razem z informacjami o wersjach poszczególnych plików.
cvs import -m "Pierwszy import projektu"
S
projekt gerard start
Oczywiście polecenie to możemy dostosować do naszych
potrzeb – ma ono postać:
cvs import [-opcje] nazwa_modułu vendor release
Podstawowe polecenia CVS:
•
checkout moduł
(skrót:
co
) – tworzy podkatalog z kopią
roboczą plików umieszczonych w repozytorium
•
update
(skrót:
up
) – uaktualnia pliki kopii roboczej do naj-
nowszej wersji obecnej w repozytorium
•
add plik
– komunikuje CVS, że plik zostaje dołączo-
ny do projektu i ma zostać przesłany przy następnym
wywołaniu commit;
• remove plik – po usunięciu pliku z kopii roboczej możemy
użyć tej funkcji, aby plik został również usunięty z repo-
zytorium (przy najbliższym wywołaniu commit);
•
commit plik
– przesyła zmiany wprowadzone w pliku do
repozytorium;
•
diff
– wypisuje różnice pomiędzy plikami z kopii robo-
czej i ich wersjami z repozytorium;
•
import
– przesyła pliki do repozytorium tworząc nowy
projekt;
• init – inicjuje repozytorium dodając w nim katalog
CVSROOT oraz domyślne pliki koniguracyjne;
• log – wyświetla informacje o zmianach w plikach;
• status – podaje informacje o aktualnym stanie plików
(numer wersji w repozytorium i kopii roboczej, czy pliki
były edytowane itp.);
•
tag znacznik
– ustawia nazwę symboliczną znacznik
dla aktualnych wersji plików w repozytorium (można się
później do niej odwoływać z użyciem opcji -r znacznik).
Pobieramy projekt z repozytorium
Przyszedł czas na prawdziwą pracę. Zaczynając pracę
z naszym projektem musimy pobrać go z repozytorium.
W tym celu wybieramy sobie odpowiadający nam katalog,
www.linux.com.pl
61
dla programistów
w którym będziemy chcieli przechowywać pliki z projek-
tem. Może to być nawet katalog domowy (
~/
), gdyż wywo-
łanie polecenia, które za chwilę poznamy, spowoduje
utworzenie odpowiedniego podkatalogu. Podkatalog ten
będzie miał taką nazwę, jakiej użyliśmy w opcji
nazwa_
modułu
polecenia
cvs import
. No dobrze, zatem stwórzmy
katalog
~/projekty1/
i wykonajmy nasze polecenie:
mkdir ~/projekty1
cd ~/projekty1
cvs checkout projekt
W programie
GCvs
po prostu wybieramy opcję
Create –>
Checkout module
. W otwartym oknie tworzymy katalog
~/projekty1/
, po czym wchodzimy do niego i wciskamy
OK
.
W kolejnym oknie wpisujemy nazwę modułu do pobrania
(
projekt
) i możemy znów wcisnąć
OK
. Jeszcze tylko wybie-
ramy opcję
Query –> Reload view
, dzięki czemu zostanie
uaktualniona lista katalogów i plików.
Teraz w katalogu
~/projekty1/projekt/
mamy nasze pliki,
które wcześniej znajdowały się w katalogu
~/projekt/
. Czy
coś się zmieniło? Tak – pojawiły się podkatalogi o nazwie
CVS/
. Zawierają one informacje o wersjach – nie należy ich
edytować ani kasować.
Rysunek 5.
Wybieranie odpowiednich opcji porównania plików
jest znacznie wygodniejsze w interfejsie graficznym
które mają być wysłane do repozytorium. Wystarczy wyli-
czyć je na końcu polecenia, np.:
cvs commit plik1.c plik3.php
Możliwość ta jest bardzo przydatna, gdy chcemy już wysłać
uaktualnienie do niektórych plików, podczas gdy z innymi
zmodyfikowanymi chcemy jeszcze popracować.
W przypadku programu
GCvs
zaznaczamy pliki,
które chcemy uaktualnić (możemy też zaznaczyć kata-
log), a następnie wybieramy
Modify –> Commit selection
.
Podajemy komentarz dotyczący uaktualnienia, po czym
wciskamy
OK
.
Jeśli nad projektem pracuje więcej osób, to może
okazać się, że ktoś inny wysłał już uaktualnienie do popra-
wianego przez nas pliku. W takim przypadku polecenie
cvs
commit
zakończy się błędem i komunikatem zbliżonym do
poniższego:
Dokonywanie poprawek
Edycji plików dokonujemy w odpowiednich programach
– ta sprawa z oczywistych względów jest niezależna od
CVS
.
Tak więc do edycji plików tekstowych możemy użyć nasze-
go ulubionego edytora (np.
Vim
), do retuszowania fotografii
(również ich wersjami można zarządzać dzięki
CVS
) możemy
wykorzystać
GIMP-a
itd. Gdy dokonamy już poprawek i
jesteśmy z nich zadowoleni, należy wydać polecenie:
cvs commit
Zostaniemy poproszeni o podanie komentarza dotyczącego
tego uaktualnienia. Możemy też wskazać konkretne pliki,
cvs commit: Up-to-date check failed for `plik1.c'
W takim przypadku należy pobrać (
update
) do siebie
najnowszą wersję pliku, a następnie zapoznać się z róż-
nicami (pobrany plik będzie zawierał o nich informa-
cje). Po zlikwidowaniu konfliktów w pliku, możemy
skasować kopię zapasową (zapisaną w pliku o nazwie
.#nazwa_pliku
), a następnie ponownie wysłać plik do
repozytorium.
Pobieranie poprawek z repozytorium
Gdy mamy już na dysku (pobraną przez
cvs checkout
) kopię
roboczą projektu, nie musimy jej już ponownie pobierać
w całości. Jeśli nad naszym projektem pracują i inne osoby,
to po każdej przerwie w pracy warto sprawdzić, czy nie
zostały wprowadzone jakieś poprawki. Dokonujemy tego
poleceniem wydanym w katalogu z projektem:
Rysunek 4.
Praca z CVS w linii komend również jest dosyć
wygodna – wymaga tylko lepszej znajomości poleceń
cvs -n update
62
marzec 2004
Plik z chomika:
SOLARIX33
Inne pliki z tego folderu:
2006.01_Koder plików w formacie OGG_[Programowanie].pdf
(722 KB)
2007.06_Piękno fraktali_[Programowanie].pdf
(1778 KB)
2008.11_GanttProject_[Programowanie].pdf
(1014 KB)
2007.04_USB Device Explorer_[Programowanie].pdf
(1134 KB)
2006.09_QT, PyQT – szybkie tworzenie baz danych_[Programowanie].pdf
(1319 KB)
Inne foldery tego chomika:
Administracja
Aktualnosci
Audio
Bazy Danych
Bezpieczenstwo
Zgłoś jeśli
naruszono regulamin