Tworzenie repozytorium Subversion
Z systemami kontroli wersji zetknął się chyba każdy. Jest to jedno z podstawowych narzędzi programisty bez którego wielu nie wyobraża sobie po prostu pracy. W tym poście opiszę jak utworzyć repozytorium na którym będziemy pracować…
- Utworzenie repozytorium
Pierwszą czynnością będzie zalogowanie się do powłoki systemowej na serwerze i utworzenie nowego repozytorium przy pomocy komendy svnadmin (niech naszym katalogiem repozytoriów będzie ~/svn)
cd ~/svn svnadmin create moje_repo
- Ustawienie serwera
svnserve -d --listen-port=4445 -r ~/svn/ --threads
Powyższy przykład uruchomi demona serwera subversion nasłuchującego na porcie 4445. Przełącznik –threads spowoduje że każde nowe połączenie z serwerem będzie utwarzało nowy wątek.
- Struktura repozytorium
Kolejną czynnoścą jaką zrobimy po utworzeniu repozytorium na serwerze jest utworzenie struktury repo. Tworzymy trzy katalogi: trunk – na którym będziemy pracować, branches – dla releasów oraz tags – gdzie trzymać będziemy snapshoty.
svn mkdir -m "utworzenie struktury layoutu" svn://remote-host:4445/moje_repo/trunk \ svn://remote-host:4445/moje_repo/branches \ svn://remote-host:4445/moje_repo/tags
- Import nowego projektu
Nastepnie skoro mamy już gotowy layout trzeba zaimportować metadane nowego repo. Czyli w skrócie należy pobrać katalog .svn do lokalnej kopii roboczej. W tym celu przechodzimy do katalogu głównego naszego projektu i wydajemy polecenie
svn checkout svn://remote-host:4445/moje_repo/trunk .
Teraz należy zaimportować wszystkie katalogi i pliki projektu do kontroli wersji:
svn add * --force
Po wydaniu tego polecenia subversion rekurencyjnie doda wszystkie katalogi i pliki.
Dobrze, skoro wszystkie potrzebne pliki i katalogi mamy już w kontroli wersji fajnie byłoby wysłać je na serwer. W tym celu w shellu wpisujemy:
svn import -m "inicjacja projektu" . svn://remote-host:4445/moje_repo/trunk
W zależności od wielkości projektu może to trochę potrwać, ale jak już skończy to mamy repo na zdalnej maszynie, na którym śmiało możemy wykonywać checkouty, robić commity, update’y czy nawet merge’owac
Inne posty: