CVS

Adam Boduch

Przewodnik ten jest przeznaczony dla ludzi biorących czynnie udział w tworzeniu oprogramowania OpenSource. Przy tworzeniu takiego oprogramowania bardzo ważną sprawą jest koordynacja prac i zachowanie pewnego porządku, szczególnie w wypadku pracy na odległość. Kod źródłowy musi być uporządkowany i pogrupowany tak, aby nie było bałaganu.

Tutaj dobrze sprawuje się narzędzie zwane CVS (Concurent Version System). Jest to program rozpowszechniany na zasadzie licencji GPL (www.gnu.org), a jego najświeższą wersję możesz znaleźć na stronie www.cvshome.org. Program jest dość specyficzny albowiem sterujemy nim z poziomu linii poleceń, w DOS lub w konsoli w Linuksie. Dzięki niemu istnieje możliwość zarządzania całym projektem, dodawanie nowych plików itp. Wszystkie pliki są umieszczone na jakimś, jednym serwerze. Każdy użytkownik biorący udział w tworzeniu i rozwijaniu programu ma dostęp do tego serwera i może ściągnąć na swój komputer potrzebne pliki projektu. Może te pliki także uaktualniać, wysłać na serwer nową wersję, aby inni użytkownicy mogli pobrać poprawkę.

Tutaj główną rolę odgrywa wersja pliku - po kolejnym wysłaniu poprawionego pliku, zwiększana jest jego wersja np. 1.1.2.1.
Najważniejszą rolę w wersji pliku odgrywa pierwszy numerek, który oznacza numer głównej wersji pliku i zmienia się on niezwykle rzadko. Drugi numerek może oznaczać dystrybucję pliku i można przyjąć, że liczba parzysta jest wersją stabilną programu/pliku, a numer nieparzysty to wersja testowa. Trzeci numer to liczba nowości naniesionych w wersji 1.1, a ostatni numer może oznaczać kolejną wersję pliku 1.1.2. Przyjmijmy, że ostatni numerek oznacza ilość zmian naniesionych na wersję 1.1.2. Przykładowo, jeżeli poprawiliśmy jedynie błąd, to numer wersji zwiększamy na 1.1.2.1. Kolejny błąd: kolejne zwiększenie ostatniego numerku.

Po ściągnięciu programu CVS, możesz połączyć się z wybranym serwerem CVS, pod warunkiem, że jesteś w zespole pracującym nad danym projektem. Artykuł ten piszę właściwie w związku z projektem tworzenia kodu źródłowego dla strony 4programmers.net. Projekt nosi roboczą nazwę Coyote. Deweloperzy pracujący nad tym projektem korzystają właśnie z CVS.

Tak więc jeżeli masz już CVS, możesz otworzyć okienko DOS i przejść do katalogu, w którym masz umieszczony ów program. W celu zalogowania się na serwer, wpisz:

cvs -dtwó[email protected]:/Cvs/prog4 login

Po tym, serwer poprosi Cię o wpisanie hasła. Oczywiście dostęp do serwera (repozytorium) mają tylko wybrane osoby. Uwaga! W systemie Windows trzeba jeszcze określić ścieżkę, gdzie ma zostać zapisany plik z hasłami (.cvspass) - inaczej CVS powiadomi Cię iż niemożliwe jest załogowanie na dany serwer. W tym celu wpisz takie polecenie DOS:

set HOME=C:

W tym wypadku głównym katalogiem zapisu, zostanie uznany dysk C:

Wylogowanie z serwera CVS następuje po wpisaniu takiej komendy:

cvs logout

Inne operacje są wykonywane podobnie. Ja jednak zalecam ściągnięcie sobie nakładki wizualnej. Dla Windows polecam program WinCVS (www.wincvs.org). W takim wypadku łatwiejsze staje się korzystanie z całego CVS, gdyż praktycznie nie jesteśmy zmuszeni do wpisywania poleceń.

Podczas ściągania WinCVS'a przygotuj sobie miejsce (katalog), gdzie program ma ściągnąć pliki projektu. Zakładam, że masz już zainstalowany serwer HTTP (np. Apache) z obsługą PHP i MySQL. Przejdź więc do głównego katalogu serwera - w moim wypadku jest to c:/usr/sfp/public_html/ - tutaj zostaną ściągnięte pliki!

Gdy zainstalujesz już program WinCVS przejdź do menu Admin | Preferences. W pierwszym polu "Enter the CVSROOT" wpisz:

[email protected]:/Cvs/prog4

Oczywiście zamiast "Adam" musisz podać swój login (uwaga! nie każdy użytkownik serwisu 4programmers.net ma dostęp do serwera!). Naciśnij OK., a następnie z menu Admin wybierz Login. Program poprosi Cię o wpisanie hasła (jest takie samo jak do profilu w serwisie), a następnie spróbuje połączyć się z serwerem. Jeżeli to się uda, w dolnej części programu, w polu tekstowym pojawi się linia:

CVS exited normally with code 0

Oznacza ona, że jesteś zalogowany i możesz już operować na repozytorium.

Nadszedł czas na pobranie plików z serwera na Twój komputer. Z menu Create wybierz Checkout module. Na zakładce Checkout setttings w pierwszym polu tekstowym, u góry wprowadź po prostu znak . (kropka). W kolejnym polu Local wpisz ścieżkę gdzie mają zostać zapisane pliki (np. c:/usr/sfp/public_html). Po naciśnięciu przycisku OK., program spróbuje pobrać dane z serwera.
Niech Cię nie zdziwi obecność standardowych dla CVS-a katalogów CVSROOT oraz CVS.

Pobranie najnowszych wersji plików następuje zawsze po wybraniu z menu pozycji Update selection. Wystarczy, że zaznaczysz plik lub katalog, a WinCVS sprawdzi, czy istnieje jego aktualniejsza wersja.

Jeżeli chodzi o wysyłanie nowych plików, to najpierw przed dokonaniem zmian upewnij się, czy plik, który chcesz edytować nie ma atrybutu "Tylko do odczytu". Później po dokonaniu zmian zapisz go i powróć do programu WinCVS. Główna część programu prezentuje aktualnie zaznaczony katalog. Zaznacz więc katalog, w którym masz aktualnie pliki projektu. Zmodyfikowane (nie wysłane jeszcze na serwer) pliki projektu są zaznaczone na czerwono. Aby wysłać je na serwer zaznacz je prawym przyciskiem myszy i wybierz opcję Commit selection. Program wkrótce poprosi Cię o wpisanie informacji na temat tej poprawki. Możesz teraz wpisać jakich zmian dokonałeś w pliku. Po tej operacji plik powinien zostać wysłany na serwer.

Naturalnie jest to tylko wstęp do CVS-a. Nie ma powodu, abyś nie zapoznał się z poleceniami tego programu, w książce, która znajduje się pod tym adresem: http://www.4programmers.net/download.php?id=829
Książka jest co prawda po angielsku, ale w dość wyczerpujący sposób wyjaśnia jak korzystać z CVS-a.

Jeżeli chodzi o inne nakładki graficzne to godnym polecenia jest także program TortoiseCVS (www.tortoisecvs.sourceforge.net). Jeżeli chodzi o Linuks to polecam program Cervisa.

W przypadku pytań związanych z CVS (i tylko CVS) proszę pytać na GG (1098230) lub Tlen (Bald).

8 komentarzy

To po przejściu na nowego Coyote zamienione zostały z blizej mi nieznanych powodów cudzysłowy drukarskie i apostrofy. Zaraz potraktuję je kilkoma Search->Replace i poprawię tego arta.

Jakies encje sie pojawyly w arcie - skad to?
i adres esolution.pl wypadaloby zaktualizowac ;]

A ja polecam Subversion - http://subversion.tigris.org - moim zdaniem jest dużo wygodniejsze i przyjemniejsze w użyciu.

Jak chodzi o tą ścieżkę to jest to ścieżka w Windowsie, ale fakt, że podana trochę dziwnie. W ten sposób podaje się np. ścieżki w Windowsowym Apache i domyślam się że w CVS też. Powodem takiego podawania ścieżek jest fakt, iż programy te są stworzone dla Linuxa, tylko jakiś dobroduszny maniak MacroSyfu ;p (bez obrazy) przerobił je pod Windows

Jak by ktos potrzebował to mały opisik jest tutaj i to po naszemu : http://www.linuxpub.pl/index.php?o=a&i=26

Takze dobre materialy o CVS mozna znalezc na : http://team.pld.org.pl/~klakier/doc/cvs/pl/ (po polsku!)

a łyżka na to niemożliwe :o

PS. spox ale ja wole robic kopie zapasowe na cd najlepiej rw a i tak kto by chcial ze mna robic program :)))))

W Windowsie czy w Linuksie masz ścieżkę c:/usr/sfp/public_html - bo do żadnego systemu mi to nie pasuje...