Ten rozdział pokazuje, jak wypróbować niektóre z najczęściej używanych funkcji na małym repozytorium testowym. Oczywiście nie wyjaśnia wszystkiego - to tylko ostatecznie Skrócony Przewodnik Startowy. Kiedy już go przejdziecie należy poświęcić trochę czasu i przeczytać resztę tej instrukcji obsługi, która objaśnia znacznie rzeczy bardziej szczegółowo. Wyjaśnia również dokładniej postawienie właściwego serwera Subversion.
Dla prawdziwego projektu należy ustawić repozytorium w bezpiecznym miejscu z kontrolującym go serwerem Subversion. Dla celów tego poradnika będziemy używać funkcji lokalnego repozytorium Subversion, które pozwala na bezpośredni dostęp do repozytorium tworzonego na dysku twardym bez żadnej konieczności korzystania z serwera.
Na początku należy utworzyć nowy, pusty folder na komputerze lokalnym. Może powstać gdziekolwiek, ale na potrzeby naszego samouczka będziemy nazywać go C:\svn_repos
. Teraz trzeba kliknąć prawym przyciskiem myszy na tym nowym folderze i w menu kontekstowym wybrać → . Repozytorium zostaje utworzone wewnątrz tego folderu i jest gotowe do pracy. Utworzymy również domyślną strukturę katalogów wciskając przycisk .
Funkcja lokalnego repozytorium jest bardzo przydatna do badania i oceny, a o ile nie pracuje się jako jedyny programista na jednym komputerze PC, należy zawsze używać odpowiedniego serwera Subversion. Kuszące jest w małej firmie, by uniknąć pracy nad konfigurowaniem serwera i mieć prosty dostęp do repozytorium przez udział sieciowy. Nie róbcie tego. Spowoduje to utratę danych. Przeczytajcie „Dostęp do repozytorium na udziale sieciowym” by dowiedzieć się, dlaczego jest to zły pomysł i jak skonfigurować serwer.
Posiadamy teraz repozytorium, ale póki co jest ono zupełnie puste. Załóżmy, że mam w C:\Projects\Widget1
zestaw plików, które chcę dodać. Przejdźmy do katalogu Widget1
w Eksploratorze i kliknijmy na nim prawym przyciskiem myszy. Wybierzmy teraz → , co wyświetli okno dialogowe
Repozytorium Subversion jest określone przez adres URL, który pozwala nam wskazać repozytorium z dowolnego miejsca w Internecie. W tym przypadku musimy wskazać nasze własne, lokalne repozytorium, które posiada adres URL file:///c:/svn_repos/trunk
i do którego dodamy własny projekt o nazwie Widget1
. Zauważcie, że mamy tu 3 ukośniki po file:
i że w całej ścieżce używane są ukośniki a nie backslashe.
Inną ważną cechą tego okna jest pole Komunikat importu, które pozwala wprowadzić komunikat opisujący to, co robicie. Kiedy dochodzi do weryfikacji historii projektu, te opisy zmian stanowią cenną pomoc, jakie zmiany zostały dokonane i dlaczego. W tym przypadku możemy powiedzieć, coś prostego, jak „Import projektu Widget1”. Kliknijcie na i folder zostanie dodany do repozytorium.
Teraz gdy już mamy projekt w naszym repozytorium, potrzebujemy utworzyć kopię roboczą do codziennej pracy. Zauważcie, że sam import folderu nie zmienił go automatycznie w kopię roboczą. Terminem używanym przez Subversion dla utworzenia świeżej kopii roboczej jest Pobranie
. Przejdźmy do pobrania folderu Widget1 z naszego repozytorium do folderu rozwojowego na PCcie, który nazwiemy C:\Projects\Widget1-Dev
. Utwórzcie ten folder, po czym kliknijcie prawym przyciskiem myszy i wybierzcie → . Następnie wpiszcie adres URL do pobrania, w tym przypadku file:///c:/svn_repos/trunk/Widget1
i wciśnijcie . Nasz folder rozwojowy zostaje wtedy zapełniony plikami z repozytorium.
W ustawieniach domyślnych pozycja menu pobierz nie znajduje się w podmenu TortoiseSVN ale pokazywana jest w głównym menu eksploratora. Polecenia TortoiseSVN nie umieszczone w podmenu posiadają przedrostek SVN
:
Można zauważyć, że wygląd tego folderu różni się od naszego oryginalnego katalogu. Każdy plik ma zielony znacznik wyboru w lewym dolnym rogu. Są to ikony statusu TortoiseSVN, które są obecne tylko w kopii roboczej. Zielony stan wskazuje, że plik nie różni się od wersji w repozytorium.
Czas zabrać się do pracy. W Widget1-Dev
zaczynamy edycję plików - powiedzmy, że wprowadzimy zmiany w Widget1.c
i ReadMe.txt
. Zauważmy, że nakładki ikon dla tych plików zmieniły się teraz na czerwone wskazując, że zmiany zostały wprowadzone lokalnie.
Ale jakie są zmiany? Należy kliknąć prawym przyciskiem myszy na jednym z zmienionych plików i wybrać
→ . Uruchamia się porównywarka plików TortoiseSVN, pokazując, które dokładnie linie uległy zmianie.OK, więc jesteśmy zadowoleni z tych zmian, zaktualizujmy repozytorium. Działanie to jest określane dalej jakoZatwierdzenie
zmian. Trzeba kliknąć prawym przyciskiem myszy na folder Widget1-Dev
i wybrać → . Okno dialogowe zatwierdzenia zawiera listę zmienionych plików, z polem wyboru przy każdym z nich. Możecie wybrać tylko część z plików, ale w tym przypadku mamy zamiar zatwierdzić zmiany do obu plików. Wpiszcie komunikat opisujący, co się zmieniło i kliknijcie . Okno dialogowe postępu pokazuje, że pliki są przesyłane do repozytorium i gotowe.
Wraz z rozwojem projektu trzeba będzie dodawać nowe pliki - powiedzmy, że dodacie kilka nowych funkcji w Extras.c
i dodacie odwołanie w istniejącym Makefile
. Trzeba kliknąć prawym przyciskiem myszy na folder i → . Okno dialogowe dodania pokazuje teraz wszystkie pliki bez informacji o wersji i możecie wybrać te, które chcecie dodać. Innym sposobem dodawania plików jest kliknięcie prawym przyciskiem myszy na plik, i wybór → .
Teraz po przejściu do zatwierdzenia folderu, nowy plik pokazuje się jako Dodano a istniejący plik jako Zmodyfikowano. Pamiętajcie, że możecie kliknąć dwukrotnie na zmodyfikowanym pliku, aby sprawdzić dokładnie, jakie zmiany zostały dokonane.
Jedną z najbardziej przydatnych funkcji TortoiseSVN jest okno dziennika. Pokazuje ono listę wszystkich zatwierdzeń dokonanych na pliku lub folderze oraz wyświetla szczegółowe wiadomości odnośnie zatwierdzeń, które wprowadziliście (wpisaliście komunikat zatwierdzenia zgodnie z sugestiami? Jeśli nie, teraz widzicie dlaczego to takie ważne).
OK, oszukałem tu trochę i pokazałem zrzut ekranu z repozytorium TortoiseSVN.
W górnej części okna wyświetlana jest lista zatwierdzonych wersji wraz z początkiem opisu zatwierdzenia. Jeśli wybierze się jedną z tych wersji, środkowe okienko pokaże nam pełny opis zmian dla tej wersji a w dolnym panelu pojawi się lista zmienionych plików i folderów.
Każde z tych okienek ma własne menu kontekstowe, które oferuje wiele więcej sposobów wykorzystania tych informacji. W dolnym okienku można kliknąć dwukrotnie na pliku, aby sprawdzić dokładnie, jakie zmiany zostały dokonane w tej wersji. Przejdź do „Okno dialogowe dziennika wersji”, aby poznać całą historię.
Jedną z cech wszystkich systemów kontroli wersji jest to, że pozwala cofnąć zmiany wprowadzone wcześniej. Jak można się spodziewać, w TortoiseSVN działanie to jest łatwo dostępne.
Jeśli chcecie pozbyć się zmian, których jeszcze nie zatwierdziliście i przywrócić plik do stanu przed rozpoczęciem edycji
→ jest twoim przyjacielem. Polecenie odrzuca zmiany (do Kosza, na wszelki wypadek) i przywraca zatwierdzoną wersję z początku zmian. Jeśli chcecie pozbyć się tylko niektórych zmian, możecie użyć TortoiseMerge aby zobaczyć różnice i wybiórczo przywrócić zmienione wiersze.Jeśli chcecie cofnąć skutki poszczególnych wersji, zacznijcie od okna dialogowego dziennika i odszukajcie niewłaściwą wersję. Teraz trzeba wybrać
→ a zmiany te zostaną cofnięte.