![Page 1: Systemy zarzadzania wersjamijanusz/dydaktyka/2007-2008/... · 2007. 11. 7. · Norbert Potocki Systemy zarządzania wersjami. Subversion (SVN) zalety projekt open-source naprawia](https://reader035.vdocuments.pub/reader035/viewer/2022071512/6132ef70dfd10f4dd73ac426/html5/thumbnails/1.jpg)
Systemy zarządzania wersjami
Norbert Potocki
24 października 2007
Norbert Potocki Systemy zarządzania wersjami
![Page 2: Systemy zarzadzania wersjamijanusz/dydaktyka/2007-2008/... · 2007. 11. 7. · Norbert Potocki Systemy zarządzania wersjami. Subversion (SVN) zalety projekt open-source naprawia](https://reader035.vdocuments.pub/reader035/viewer/2022071512/6132ef70dfd10f4dd73ac426/html5/thumbnails/2.jpg)
Po co? Dla kogo? Dlaczego?
aby ułatwić kontrolę nad projektem
aby panować nad wersjami
aby móc śledzić zmiany
dla każdego projektu, przy którym pracuje więcej niż jedna osoba
dla ludzi ekstremalnych: zawsze :)
bo jest to wygodne
bo jest to praktyczne
bo tak robią profesjonaliści - czyli MY :)
Norbert Potocki Systemy zarządzania wersjami
![Page 3: Systemy zarzadzania wersjamijanusz/dydaktyka/2007-2008/... · 2007. 11. 7. · Norbert Potocki Systemy zarządzania wersjami. Subversion (SVN) zalety projekt open-source naprawia](https://reader035.vdocuments.pub/reader035/viewer/2022071512/6132ef70dfd10f4dd73ac426/html5/thumbnails/3.jpg)
Przykładowe systemy zarządzania wersjami
CVS
Subversion
Git - używany przez kernel.org
IBM Rational ClearCase
Microsoft Visual SourceSafe (dla małych projektów)
Visual Studio Team System (dla dużych projektów)
Mercurial (napisany w Python’ie)
Darcs (napisany w Haskell’u)
SVK (napisany w Perl’u)
Norbert Potocki Systemy zarządzania wersjami
![Page 4: Systemy zarzadzania wersjamijanusz/dydaktyka/2007-2008/... · 2007. 11. 7. · Norbert Potocki Systemy zarządzania wersjami. Subversion (SVN) zalety projekt open-source naprawia](https://reader035.vdocuments.pub/reader035/viewer/2022071512/6132ef70dfd10f4dd73ac426/html5/thumbnails/4.jpg)
CVS
zaletyprojekt open-sourcejeden ze starszych systemów (powstał w 1980 roku)dobrze udokumentowany i przetestowanysystem o dużej funkcjonalności
wadyod dawna nie dodaje się do niego nowej funkcjonalnościnie wspiera atomowych operacji commitnie pozwala zmieniać nazw plików poddanych zarządzaniu wersjamisłabe wsparcie dla Unicodenie pozwala zarządzać dowiązaniami symbolicznymi (są onepotencjalnie niebezpieczne)
Norbert Potocki Systemy zarządzania wersjami
![Page 5: Systemy zarzadzania wersjamijanusz/dydaktyka/2007-2008/... · 2007. 11. 7. · Norbert Potocki Systemy zarządzania wersjami. Subversion (SVN) zalety projekt open-source naprawia](https://reader035.vdocuments.pub/reader035/viewer/2022071512/6132ef70dfd10f4dd73ac426/html5/thumbnails/5.jpg)
Subversion (SVN)
zaletyprojekt open-sourcenaprawia braki CVS’a - powstał jako jego następca w 2000 roku(CollabNet Inc.)jest aktywnie rozwijanybardzo efektywnie przechowuje pliki binarnepozwala na “niemal” dowolne zmiany statusu plików, nie powodującutraty historii wersji
wadyproblemy ze zmianą nazwy pliku - działa na zasadzie kopiuj-usuńtrudne administrowanie repozytorium
Norbert Potocki Systemy zarządzania wersjami
![Page 6: Systemy zarzadzania wersjamijanusz/dydaktyka/2007-2008/... · 2007. 11. 7. · Norbert Potocki Systemy zarządzania wersjami. Subversion (SVN) zalety projekt open-source naprawia](https://reader035.vdocuments.pub/reader035/viewer/2022071512/6132ef70dfd10f4dd73ac426/html5/thumbnails/6.jpg)
Wygodne nakładki graficzne
eSvn - wielosystemowa, oparta o QT
KDESvn - zaprojektowana specjalnie dla KDE
Netbeans - zawiera moduł integracji z Subversion
RapidSVN - wielosystemowa
TortoiseSVN - prawdopodobnie najlepsza nakładka dla Windows,integruje się z explorerem
Norbert Potocki Systemy zarządzania wersjami
![Page 7: Systemy zarzadzania wersjamijanusz/dydaktyka/2007-2008/... · 2007. 11. 7. · Norbert Potocki Systemy zarządzania wersjami. Subversion (SVN) zalety projekt open-source naprawia](https://reader035.vdocuments.pub/reader035/viewer/2022071512/6132ef70dfd10f4dd73ac426/html5/thumbnails/7.jpg)
Interfejsy web’owe
ViewVC — używane przez MPlayer’a
WebSVN — wspierana przez Tigris
sventon — aplikacja napisana w Java do przeglądania repozytoriów
Norbert Potocki Systemy zarządzania wersjami
![Page 8: Systemy zarzadzania wersjamijanusz/dydaktyka/2007-2008/... · 2007. 11. 7. · Norbert Potocki Systemy zarządzania wersjami. Subversion (SVN) zalety projekt open-source naprawia](https://reader035.vdocuments.pub/reader035/viewer/2022071512/6132ef70dfd10f4dd73ac426/html5/thumbnails/8.jpg)
Na zachętę - kto używa SVN?
MPlayer
GCC
Apache
KDE
GNOME
Google Code :)
Norbert Potocki Systemy zarządzania wersjami
![Page 9: Systemy zarzadzania wersjamijanusz/dydaktyka/2007-2008/... · 2007. 11. 7. · Norbert Potocki Systemy zarządzania wersjami. Subversion (SVN) zalety projekt open-source naprawia](https://reader035.vdocuments.pub/reader035/viewer/2022071512/6132ef70dfd10f4dd73ac426/html5/thumbnails/9.jpg)
Darmowe repozytoria SVN
MIMUW students Server - potrzebne “wtyki” u wykładowców :)
SourceForge (sourceforge.net)
Berlios.de (www.berlios.de)
CVSDude (cvsdude.com)
Google (code.google.com/hosting)
CodeSpaces (www.CodeSpaces.com)
Norbert Potocki Systemy zarządzania wersjami
![Page 10: Systemy zarzadzania wersjamijanusz/dydaktyka/2007-2008/... · 2007. 11. 7. · Norbert Potocki Systemy zarządzania wersjami. Subversion (SVN) zalety projekt open-source naprawia](https://reader035.vdocuments.pub/reader035/viewer/2022071512/6132ef70dfd10f4dd73ac426/html5/thumbnails/10.jpg)
Elementy instalacji Subversion
svn — klient Subversion
svnadmin — narzędzie do tworzenia i zarządzania repozytoriami
svnserve — samodzielny serwer repozytoriów Subversion
inne — dla zaawansowanych :)
Norbert Potocki Systemy zarządzania wersjami
![Page 11: Systemy zarzadzania wersjamijanusz/dydaktyka/2007-2008/... · 2007. 11. 7. · Norbert Potocki Systemy zarządzania wersjami. Subversion (SVN) zalety projekt open-source naprawia](https://reader035.vdocuments.pub/reader035/viewer/2022071512/6132ef70dfd10f4dd73ac426/html5/thumbnails/11.jpg)
Trochę teorii
Subversion — system scentralizowany, którego centrum jestrepozytorium
repozytorium przechowuje dane poddane zarządzaniu wersjami orazhistorię ich zmian
repozytorium posiada typową hierarchę drzewiastą - jak większośćsystemów plików :)
metodologia “copy-modify-merge”
kopie lokalne o katalog “.svn”
Norbert Potocki Systemy zarządzania wersjami
![Page 12: Systemy zarzadzania wersjamijanusz/dydaktyka/2007-2008/... · 2007. 11. 7. · Norbert Potocki Systemy zarządzania wersjami. Subversion (SVN) zalety projekt open-source naprawia](https://reader035.vdocuments.pub/reader035/viewer/2022071512/6132ef70dfd10f4dd73ac426/html5/thumbnails/12.jpg)
Subversion - najważniejsze polecenia
help — najważniejsze !!! - wyświetla pomoc
import — wgrywa strukturę katalogów do repozytorium
list — wyświetla strukturę repozytorium
checkout — pobiera dane z serwera SVN i tworzy lokalną kopięroboczą danego repozytorium
commit — wysyła zmiany wprowadzone w kopii roboczej dorepozytorium
update — aktualizuje kopię roboczą do wersji znajdującej się wrepozytorium
status — pokazuje zmiany w kopii roboczej w stosunku do ostatniopobranej wersji z repozytorium
add / delete / copy / move — podstawowe zarządzanie plikami
revert — cofnij wprowadzone zmiany
log — wyświetla historię zmian
Norbert Potocki Systemy zarządzania wersjami
![Page 13: Systemy zarzadzania wersjamijanusz/dydaktyka/2007-2008/... · 2007. 11. 7. · Norbert Potocki Systemy zarządzania wersjami. Subversion (SVN) zalety projekt open-source naprawia](https://reader035.vdocuments.pub/reader035/viewer/2022071512/6132ef70dfd10f4dd73ac426/html5/thumbnails/13.jpg)
polecenie: svn help
składnia — svn help [KOMENDA]
ważniejsze parametry — brak
działanie — wyświetla listę możliwych komend; gdy podana jestkomenda wypisuje pomoc na jej temat
Norbert Potocki Systemy zarządzania wersjami
![Page 14: Systemy zarzadzania wersjamijanusz/dydaktyka/2007-2008/... · 2007. 11. 7. · Norbert Potocki Systemy zarządzania wersjami. Subversion (SVN) zalety projekt open-source naprawia](https://reader035.vdocuments.pub/reader035/viewer/2022071512/6132ef70dfd10f4dd73ac426/html5/thumbnails/14.jpg)
polecenie: svn import
składnia — svn import [ŚCIEŻKA] URLważniejsze parametry-m opis — dodaj opis do informacji o aktualizacji- -username użytkownik — nazwa użytkownika- -password hasło — hasło dla użytkownika
działanie — wykonaj operację commit na pliku (bądź katalogu) niepodlegającym kontroli wersji. Zazwyczaj używa się go aby wgraćpierwszą wersję źródeł do repozytorium
Norbert Potocki Systemy zarządzania wersjami
![Page 15: Systemy zarzadzania wersjamijanusz/dydaktyka/2007-2008/... · 2007. 11. 7. · Norbert Potocki Systemy zarządzania wersjami. Subversion (SVN) zalety projekt open-source naprawia](https://reader035.vdocuments.pub/reader035/viewer/2022071512/6132ef70dfd10f4dd73ac426/html5/thumbnails/15.jpg)
polecenie: svn list
składnia — svn list [CEL[@WERSJA]]ważniejsze parametry-r wersja — komenda odnosi się do wersji “wersja”- -xml — wyświetl w formacie XML
działanie — wyświetl strukturę plików i katalogów repozytorium wwersji WERSJA (lub aktualnej, jeśli WERSJA nie została podana)
Norbert Potocki Systemy zarządzania wersjami
![Page 16: Systemy zarzadzania wersjamijanusz/dydaktyka/2007-2008/... · 2007. 11. 7. · Norbert Potocki Systemy zarządzania wersjami. Subversion (SVN) zalety projekt open-source naprawia](https://reader035.vdocuments.pub/reader035/viewer/2022071512/6132ef70dfd10f4dd73ac426/html5/thumbnails/16.jpg)
polecenie: svn checkout
składnia — svn checkout URL[@WERSJA]... [ŚCIEŻKA]ważniejsze parametry-r wersja — komenda odnosi się do wersji “wersja”
działanie — pobierz repozytorium spod adresu URL w wersjiWERSJA i utwórz lokalną kopię roboczą w ŚCIEŻKA
Norbert Potocki Systemy zarządzania wersjami
![Page 17: Systemy zarzadzania wersjamijanusz/dydaktyka/2007-2008/... · 2007. 11. 7. · Norbert Potocki Systemy zarządzania wersjami. Subversion (SVN) zalety projekt open-source naprawia](https://reader035.vdocuments.pub/reader035/viewer/2022071512/6132ef70dfd10f4dd73ac426/html5/thumbnails/17.jpg)
polecenie: svn commit
składnia — svn commit [ŚCIEŻKA]ważniejsze parametry-m opis — dodaj opis do informacji o aktualizacji (WYMAGANE!!)-F plik — pobież opis z pliku “plik“
działanie — wyślij zmiany dokonane w lokalnej kopii roboczej dorepozytorium
Norbert Potocki Systemy zarządzania wersjami
![Page 18: Systemy zarzadzania wersjamijanusz/dydaktyka/2007-2008/... · 2007. 11. 7. · Norbert Potocki Systemy zarządzania wersjami. Subversion (SVN) zalety projekt open-source naprawia](https://reader035.vdocuments.pub/reader035/viewer/2022071512/6132ef70dfd10f4dd73ac426/html5/thumbnails/18.jpg)
polecenie: svn update
składnia — svn update [ŚCIEŻKA]ważniejsze parametry-r wersja — komenda odnosi się do wersji “wersja”
działanie — pobierz zmiany z repozytorium do lokalnej kopiiroboczej. W trakcie pobierania danych Subversion będzie wypisywałnazwy zmodyfikowanych plików wraz z kodami literowymioznaczającymi wprowadzoną zmianę:A — dodanyD — usuniętyU — zaktualizowanyC — spowodował kolizjęG — złączony (operacją merge)
Norbert Potocki Systemy zarządzania wersjami
![Page 19: Systemy zarzadzania wersjamijanusz/dydaktyka/2007-2008/... · 2007. 11. 7. · Norbert Potocki Systemy zarządzania wersjami. Subversion (SVN) zalety projekt open-source naprawia](https://reader035.vdocuments.pub/reader035/viewer/2022071512/6132ef70dfd10f4dd73ac426/html5/thumbnails/19.jpg)
polecenie: svn status
składnia — svn status [ŚCIEŻKA]
ważniejsze parametry — brak
działanie — wyświetl informacje o zmianach wprowadzonych dolokalnej kopii w stosunku do wersji pobranej przy ostatniejsynchronizacji z repozytorium. Wypisuje nazwy plików oraz literowykod oznaczający wprowadzoną zmianę. Kodów tych nie przytaczamy,gdyż jest ich dużo. Można o nich poczytać po wykonaniu polecenia“svn help status”.
Norbert Potocki Systemy zarządzania wersjami
![Page 20: Systemy zarzadzania wersjamijanusz/dydaktyka/2007-2008/... · 2007. 11. 7. · Norbert Potocki Systemy zarządzania wersjami. Subversion (SVN) zalety projekt open-source naprawia](https://reader035.vdocuments.pub/reader035/viewer/2022071512/6132ef70dfd10f4dd73ac426/html5/thumbnails/20.jpg)
polecenie: svn add / delete / copy / move
składnia — svn [add OR delete OR copy OR move] ŚCIEŻKA1[ŚCIEŻKA2]ważniejsze parametry-m opis — dodaj opis do informacji o aktualizacji
działanie — wykonaj operację [dodawania OR usuwania ORkopiowania OR przenoszenia] pliku w repozytorium. Zmiany zostajązatwierdzone po wykonaniu najbliższej operacji “commit”
Norbert Potocki Systemy zarządzania wersjami
![Page 21: Systemy zarzadzania wersjamijanusz/dydaktyka/2007-2008/... · 2007. 11. 7. · Norbert Potocki Systemy zarządzania wersjami. Subversion (SVN) zalety projekt open-source naprawia](https://reader035.vdocuments.pub/reader035/viewer/2022071512/6132ef70dfd10f4dd73ac426/html5/thumbnails/21.jpg)
polecenie: svn revert
składnia — svn revert ŚCIEŻKA
ważniejsze parametry — brak
działanie — przywróć dany plik do stanu z poprzedniejsynchronizacji z repozytorium
Norbert Potocki Systemy zarządzania wersjami
![Page 22: Systemy zarzadzania wersjamijanusz/dydaktyka/2007-2008/... · 2007. 11. 7. · Norbert Potocki Systemy zarządzania wersjami. Subversion (SVN) zalety projekt open-source naprawia](https://reader035.vdocuments.pub/reader035/viewer/2022071512/6132ef70dfd10f4dd73ac426/html5/thumbnails/22.jpg)
polecenie: svn log
składnia — svn log [ŚCIEŻKA]ważniejsze parametry- -limit liczba — ustaw limit wyświetlanych wiadomości na “liczba”
działanie — wyświetl historię zmian dla repozytorium lub plikuŚCIEŻKA
Norbert Potocki Systemy zarządzania wersjami
![Page 23: Systemy zarzadzania wersjamijanusz/dydaktyka/2007-2008/... · 2007. 11. 7. · Norbert Potocki Systemy zarządzania wersjami. Subversion (SVN) zalety projekt open-source naprawia](https://reader035.vdocuments.pub/reader035/viewer/2022071512/6132ef70dfd10f4dd73ac426/html5/thumbnails/23.jpg)
Rozwiązywanie kolizji
jeżeli po wprowadzeniu zmian w lokalnej kopii pliku wykonamypolecenie “update” możemy otrzymać kolizję
rozwiązywanie kolizji jest proste a zarazem trudne :)
Subversion dodaje do pliku znaczniki zmian..
.. i tworzy pliki tymczasowe zawierające Twoją wersję pliku; wersję zrepozytorium oraz wersję z poprzedniego “update”
po rozwiązaniu kolizji wykonujemy “svn resolved nazwa pliku”
Norbert Potocki Systemy zarządzania wersjami
![Page 24: Systemy zarzadzania wersjamijanusz/dydaktyka/2007-2008/... · 2007. 11. 7. · Norbert Potocki Systemy zarządzania wersjami. Subversion (SVN) zalety projekt open-source naprawia](https://reader035.vdocuments.pub/reader035/viewer/2022071512/6132ef70dfd10f4dd73ac426/html5/thumbnails/24.jpg)
Trochę biologii - o gałęziach
gałąź — linia rozwojowa istniejąca niezależnie od innych liniirozwojowych, posiadająca jednak wspólną z nimi historię (dopewnego momentu)
Subversion nie posiada wewnętrznego pojęcia gałęzi — wszystkoodbywa się poprzez kopiowanie poddrzewa plików
Norbert Potocki Systemy zarządzania wersjami
![Page 25: Systemy zarzadzania wersjamijanusz/dydaktyka/2007-2008/... · 2007. 11. 7. · Norbert Potocki Systemy zarządzania wersjami. Subversion (SVN) zalety projekt open-source naprawia](https://reader035.vdocuments.pub/reader035/viewer/2022071512/6132ef70dfd10f4dd73ac426/html5/thumbnails/25.jpg)
Bibliografia
http://en.wikipedia.org/wiki/Concurrent Versions System
http://en.wikipedia.org/wiki/Subversion (software)
http://en.wikipedia.org/wiki/List of revision control software
http://en.wikipedia.org/wiki/Comparison of revision control software
http://subversion.tigris.org
http://svnbook.red-bean.com
Norbert Potocki Systemy zarządzania wersjami