Szybkie wprowadzenie do SVN

Tomasz Przechlewski

GUST

Spis treści

Wprowadzenie
Posługiwanie się klientem SVN w systemie MS Windows
Posługiwanie się klientem SVN w systemie Linux
Więcej informacji

Wprowadzenie

Subversion (SVN) to system kontroli wersji. Higiena pracy z SVN polega na sprawdzaniu co jakiś czas czy nie nastąpiła zmiana dokumentów w repozytorium (czy ktoś czegoś nie zmienił), za pomocą svn update oraz równie częstego dodawania własnych zmian za pomocą svn commit, poprzedzonego svn status. Dzięki temu uniknie się rozsynchronizowania.

Posługiwanie się klientem SVN w systemie MS Windows

  1. Pobieramy archiwum MSI ze strony tortoisesvn.tigris.org. Po zainstalowaniu program jest zintegrowany z Eksploratorem Windows (EW).

  2. Pobranie modułu z repozytorium (polecenie checkout): w oknie EW kliknij prawy przycisk myszy. Wybierz SVN Checkout (por. rys. 1 (SVN checkout)). W wyświetlonym oknie dialogowym wpisz adres repozytorium w polu tekstowym zatytułowanym URL of repository, np. (por. rys. 2 (SVN checkout: podanie adresu repozytorium):

    svn+ssh://login@svn.gust.org.pl/Data/svn/e-learning

    Rysunek 1. SVN checkout

    SVN checkout

    Rysunek 2. SVN checkout: podanie adresu repozytorium

    SVN checkout: podanie adresu repozytorium

    Naciśniej OK. W kolejnym oknie dialogowym, które pojawi się po pewnej chwili wpisz hasło i naciśniej OK (por. rys. 3 (SVN checkout: podanie hasła)).

    Rysunek 3. SVN checkout: podanie hasła

    SVN checkout: podanie hasła

    Okno z potwierdzeniem hasła może być wyświetlane kilkukrotnie, po czym zawartość modułu z repozytorium zacznie być przesyłana na lokalną maszynę. Lista przesyłanych plików jest wyświetlana w oknie widocznym na rys. 4 (SVN checkout: lista plików). Kliknij w aktywny przycisk OK po zakończeniu transferu wszystkich plików.

    Rysunek 4. SVN checkout: lista plików

    SVN checkout: lista plików

  3. Aktualizacja modułu z repozytorium na lokalnej maszynie (polecenie update): w oknie EW przejdź do odpowiedniego katalogu (folderu) i kliknij prawy przycisk myszy. Wybierz update. Nastąpi aktualizacja zawartości katalogu wraz z ewentualnymi podkatalogami.

  4. Przesłanie zmian do repozytorium (polecenie commit): w oknie EW przejdź do odpowiedniego katalogu (folderu). Rysunek 5 (SVN checkout: przykładowy folder) przedstawia przykładowy wygląd folderu. W Programie tortoisesvn nie ma potrzeby używania polecenia status: status pliku jest określany za pomocą ikon. Pliki i katalogi niezmodyfikowane są oznaczane ikoną ,,ptaszka'' na zielonym tle zaś pliki i katalogi zmodyfikowane są oznaczone ikoną wykrzyknika na czerwonym tle.

    Rysunek 5. SVN checkout: przykładowy folder

    SVN checkout: przykładowy folder

    Kliknij prawy przycisk myszy i wybierz commit. W wyświetlonym oknie dialogowym dolne pole zawiera listę zmienionych plików. Pliki zaznaczone zostaną wysłane do repozytorium 6 (SVN commit: lista plików do wysłania). Górne pole tekstowe służy do wpisania komentarza, opisującego modyfikacje i zmiany (por. rys. 7 (SVN commit: wpisanie komentarza)). Po naciśnięciu OK pliki są wysyłane do repozytorium.

    Rysunek 6. SVN commit: lista plików do wysłania

    SVN commit: lista plików do wysłania

    Rysunek 7. SVN commit: wpisanie komentarza

    SVN commit: wpisanie komentarza

Posługiwanie się klientem SVN w systemie Linux

  1. Sprawdź czy svn jest dostępny wydając polecnie svn. Jeżeli nie jest, to zainstaluj go korzystając z odpowiedniego pakietu .rpm, .deb itp.

  2. Pobranie modułu z repozytorium (polecenie checkout):

    svn checkout svn+ssh://svn.gust.org.pl/Data/svn/e-learning lakurs

  3. Określenie statusu plików w module na maszynie lokalnej (polecenie status):

    svn status

    w rezultacie wyświetlana jest lista plików, np:

    ?      README
    A      lo2html
    M      schema/Makefile
    M      style/lo2html.xsl
    

    Powyższe oznacza, że plik README nie znajduje się w repozytorium (status nieokreślony, ?), plik lo2html ma status pliku dodanego do repozytorium (A), zaś pliki Makefile oraz lo2html.xsl z katalogu style zostały zmodyfikowane (M).

  4. Aktualizacja modułu z repozytorium na lokalnej maszynie (polecenie update):

    svn update

    polecenie działa w katalogu zawierającego moduł i dowolnym jego podkatalogu, z tym że w podkatalogu odnosi się tylko do zawartości tego podkatalogu (i jego podkatalogów).

  5. Przesłanie zmian do repozytorium (polecenie commit):

    svn commit -m 'komentarz-dt.-zmiany'

    powyższe wyśle wszystkie zmienione pliki, jeżeli mają być wysłane tylko określone pliki, to:

    svn commit -m 'komentarz-dt.-zmiany' plik plik...

    Powyższe polecenie działa w katalogu zawierającym moduł i dowolnym podkatalogu, z tym że w podkatalogu odnosi się tylko do zawartości tego podkatalogu (i jego podkatalogów)

  6. Dodanie pliku (plików) do istniejącego modułu (polecenie add):

    svn add pliki
    svn commit -m'komentarz' pliki

    Dodanie plików do modułu wykonuje się w dwóch krokach: najpierw wykonuje się polecenie add, które dodaje pliki do lokalnego repozytorium i nadaje im odpowiedni status. Pliki te zostaną dodane do modułu SVN za pomocą svn commit. Można usunąć pliki z listy plików dodawanych do modułu wykonując svn revert (wykonane przed svn commit).

  7. Wypisanie historii zmian (polecenie log):

    svn log

    oraz aktualizacja modułu w określonej wersji:

    svn -r5 up 

Więcej informacji

  1. Collins-Sussman B., Fitzpatrick B.W., Pilato C. M., Version control with subversion, O'Reilly Media 2004, http://svnbook.red-bean.com/

  2. http://www.hipeac.net/book/print/43

  3. http://www.abbeyworkshop.com/howto/misc/svn01/

  4. Jones J., Subversion UI Shootout, O'Reilly Media 2006, http://www.onlamp.com/pub/a/onlamp/2005/03/10/svn_uis.html

  5. Wolff D., Using Subversion at PLU with Tortoise SVN, http://www.cs.plu.edu/~dwolff/svn-tutorial/svn-tutorial.html

  6. Küng S., Onken L., Large S., TortoiseSVN A Subversion client for Windows Version 1.4.1, http://tortoisesvn.net/docs/release/TortoiseSVN_en/index.html


(c) T. Przechlewski; ostatnia zmiana: Thu May 17 13:11:27 CEST 2007