Jak rozpocząć pracę z lokalnym repozytorium SVN
To jest opis mojego, sposobu radzenia sobie z zarządzaniem małymi projektami. Dotychczas miałem (ograniczony) kontakt z Gitem. Ostatnio postanowiłem zapoznać też SVN. Dlatego, zamiast centralnego repozytorium, wspólnego dla wszystkich domowych projektów postanowiłem, że każdy będzie miał oddzielne repozytorium. Wszystkie projekty/eksperymenty trzymam na partycji home w folderze "Projects". Powiedzmy, że tworzę nowy projekt o nazwie "example". Przewiduję istnienie takich oto folderów:
Projects (tu są wszystkie projekty)
example (nazwa projektu)
src (kod źródłowy)
nbproject (pliki NetBeans)
repository (repozytorium SVN)
Zaczynamy od utworzenia głównego folderu projektu:
mkdir /home/<username>/Projects/example cd /home/<username>/Projects/example
Będąc w głównym folderze projektu tworzymy następujące foldery:
mkdir src mkdir repository
Następnie możemy utworzyć początkowe pliki/foldery w obrębie src, tak aby było co potem dodać do repozytorium:
cd src touch file.txt echo "inital state of this project" > file.txt cd ..
Możemy teraz założyć nowe lokalne repozytorium. Będzie ono znajdowało się w folderze o wiele mówiącej nazwie: "repository". Będąc w głównym folderze projektu wykonujemy:
svnadmin create repository
Zalecanym sposobem prowadzenia repozytorium jest utworzenie w nim trzech folderów: trunk, branches, tags. W folderze trunk będzie bieżąca - rozwojowa wersja kodu. Do niego właśnie zaimportujemy początkową zawartość folderu src. Będąc w głównym folderze projektu wykonujemy:
svn import src file:///home/<username>/Projects/example/repository/trunk
W momencie prawidłowego wykonania tego polecenia (o ile ścieżka do repozytorium została wpisana poprawnie) powinien otworzyć się preferowany edytor tekstu, w którym będzie można wpisać opis wprowadzanych zmian. Aby zakończyć edycję tekstu w moim przypadku musiałem wcisnąć CTRL+X a następnie Y aby potwierdzić zapis tekstu.
Pomimo, że pliki projektu znajdują się już w repozytorium, zawartość folderu src nie uległa w żaden sposób zmianie - SVN nie traktuje naszych plików z src jako roboczą wersję repozytorium. Aby tak się stało trzeba zrobić checkout plików z repozytorium. Będąc w głównym folderze projektu wykonujemy:
svn checkout src file:///home/<username>/Projects/example/repository/trunk
Od tej pory zmiany w plikach projektu będą śledzone. Możemy teraz postępować zgodnie ze schematem opisanym w tym wspaniałym przewodniku po SVN. Będąc w folderze src, zmodyfikujmy teraz nasz plik tekstowy:
echo "modified line of this file..." >> file.txt
Aby sprawdzić jakie pliki zostały przez nas zmienienione względem poprzedniej wersji kodu wykonujemy polecenie:
svn status
Aby opublikować własne zmiany w repozytorium wykonujemy commita:
svn commit -m "Oto opis wprowadzonych zmian"
Aby zbadać opisy wprowadzonych poprzednio commitów wykonujemy polecenie:
svn log
Ktoś mógłby się zdziwić dlaczego po wykonaniu svn log nie widać opisu dopiero co opublikowanej zmiany. Dzieje się tak dlatego, że commit wędruje do repozytorium a robocza kopia pozostaje bez zmian - w dotychczasowej wersji. Aby uaktualnić roboczą kopię kodu wykonujemy:
svn update
W przypadku gdy inni użytkownicy zmienili w międzyczasie pliki, to powyższe polecenie spowoduje, że zmiany zostaną wprowadzone do roboczej wersji projektu. Teraz gdy wykonamy ponownie svn log powinniśmy zobaczyć opis wykonanego wcześniej commita.
Teraz pozostaje już tylko przeczytać pozostałą część tego oto skromnego (bo tylko 400 stronnicowego) darmowego przewodnika po SVN.
Napisz komentarz