Posted on 17th February 2010No Responses
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:

  1. Subversion 1.6.3 i svn: warning: Network connection closed unexpectedly
  2. svn:externals na przykładzie projektu w symfony
  3. Synchronizacja katalogów via FTP
  4. Tworzenie pliku packages.xml
  5. Tworzenie modułów mod_dav_svn.so i mod_authz_svn.so
Comments
Leave a Response
XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Comment moderation is enabled. Your comment may take some time to appear.