Warning: file_get_contents(http://graph.facebook.com/http://youthcoders.net/oprogramowanie/svn/790-tortoise.html): failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in /var/www/old-yc/plugins/content/addthis.php on line 38
Tortoise |
Wpisany przez Patryk yarpo Jar | |
sobota, 16 października 2010 21:23 | |
W poniższym artykule opiszę jeden z najpopularniejszy program kliencki SVN na WIndowsa - Tortoise. Moim celem jest pokazanie, co można dzięki niemu zrobić (przynajmniej skromną część możliwości), a nie wychwalanie go jako jedynego i słusznego. Opiszę:
Na początek
importImport pozwala na wysłanie plików z naszego komputera. Zakładam, że masz już założony projket na google code. Tworzę katalog "yc-svn-example", a w nim pliki:
Celowo stworzyłem pliki różnego typu, aby pokazać, że SVN może być wykorzystywany do wielu rodzajów plików (wliczając w to graficzne, audio, exe itd.) Następnie klikam na ikonkę folderu wybieram `Tortoise SVN -> import into', jak na poniższym obrazku:
Oraz podaję adres mojego zdalnego repozytorium:
Oraz podaję hasło. Hasło można skopiować ze strony https://code.google.com/hosting/settings (oczywiście, jeśli jesteś zalogowany - zobaczysz swoje ustawienia, a wśród nich hasło).
Pliki ze wskazanego folderu zostaną zaimportowane do zdalnego repozytorium, o czym użytkownik zostanie poinformowany:
Pliki te powinny być widoczne pod adresem: http://yc-svn-example.googlecode.com/svn/trunk/ (u ciebie adres może być inny - w zależności od nazwy projektu). Jeśli wszystko poszło po twojej myśli, możesz właśnie cieszyć się swoim pierwszym repozytorium!
checkoutPozwala na pobranie plików ze zdalnego repozytorium na lokalny komputer. Tworzy lokalne repozytorium, dzięki czemu można pracować nad podbranym projektem z wykorzystaniem mechanizmów SVN. Stwórz katalog o nazwie 'yc-project'. Następnie kliknij na nim prawym przyciskiem i z podręcznego menu wybierz 'checkout':
Następnie sprawdź,czy dane są poprawne (adres repozytorium zdalnego oraz lokalny katalog, do którego mają zostać pobrane pliki):
Teraz powinna się wyświetlić lista pobranych plików. Gdy odświeżysz katalog, w którym się znajdujesz ikonka katalogu `yc-project' powinna wyglądać podobnie do tej:
Oznacza to, że:
statusJeśli używasz Tortoise, to nie musisz jawnie wykonywać polecenia `status'. Jest ono wykonywane automatycznie. Ty widzisz jedynie wynik. Na powyższym rysunku widać znak "ok" (tzn. "ptaszek"). Oznacza on, że wszystkie pliki są takie jak ich odpowiedniki na serwerze. Otwórz teraz folder `yc-project'. Powienieneś zobaczyć coś takiego:
Zmiana w plikuWejdź do pliku `index.php' i wpisz w nim taki tekst:
Zapisz plik i odśwież folder 'yc-project'. Powinieneś zobaczyć coś takiego:
Dodanie plikuDodaj do katalogu 'yc-project' plik o nazwie `nowy.txt'. Po odświeżeniu katalogu powinieneś zobaczyć coś takiego:
diffCzasem chciałbyś zobaczyć, co tak naprawdę zmieniłeś w pliku. Wtedy bardzo przydatnym i często wykorzystywanym poleceniem jest diff. Polecenie to wskazuje różnice między plikami - lokalnym i tym ze zdalnego repozytorium. Porównajmy naszą lokalną wersję `index.php' z wersją ze zdalnego ropozytorium.
Po chwili (jej długość zależy od wielkości plików i szybkości łącza) zostanie wyświetlony wynik:
Jak widać na powyższym obrazku pokazana jest linia, w której nastąpiła zmiana. W tym wypadku dodanie (o czym świadczy znak plusa). W tym wypadku porównanie można byłoby zrobić ręcznie ("ocznie"), ale jeśli plik miałby tysiąc linii, to musisz przyznać, że automatyzacja wydaje się bardzo wygodną opcją :)
commitPozwala wysłać zawartość lokalnie zmienionego pliku do zdalnego repozytorium. Wyślijmy plik `index.php':
Teraz podajmy jeszcze informację o tym, co zmieniliśmy:
Wiadomość powinna mówić, co zostało zmienione w porównaniu z poprzednią wersją. Później jest to przydatne przy poszukiwaniu błędu i przywracaniu do działającej wersji (obyś nigdy nie musiał się tym zajmować, gdy wszyscy commitują z informacją "moja zmiana"). Po chwili powinniśmy dostać informację, że wszystko jest dodane prawidłowo. Tu czasem może nie być tak różowo. Szczególnie, jeśli natrafimy na konflikty. Ale to jest temat na osobny artykuł.
blameBlame jest podobnym poleceniem, jak `diff'. Pokazuje jednak dodatkowo autora zmian. Blame po angielsku znaczy "oskarż". Pokazuje podobnie jak diff plik, z addnotacją kto dokonał ostani zmian w konkretnej linii:
następnie skonfigurujmy ustawienia:
poczekajmy chwilę:
i sprawdźmy, kto zmieniał jaką linię jako ostatni:
Widać, że w tym pliku, za wszystko odpowiedziany jest użytkownik o loginie Jar.Patryk. Czyli ja :) To by się zgadzało. U Ciebie będzie pewnie inaczej :)
updateUpdate jest poleceniem pozwalającym na pobranie plików ze zdalnego repozytorium. Można powiedzieć, że jest to polecenie komplementarne do commit - działa w drugą stronę. W naszym projekcie jest tylko jedna osoba pracująca na jednym komputerze. Tak więc nie zauważysz faktycznego działania. Załączam rysunek, który być może rozjaśni Ci trochę:
Na koniecTo co odpisałem w tym artykule to całkowite podstawy SVN. Tak prosty w obsłudze program jak Tortoise ma jeszcze dużo więcej opcji i możliwości. Popróbuj jednak sam! Na pewno sporo się nauczysz :) Warto też jest założyć sobie - nawet na tym samym komputerze - drugie repozytorium SVN odnoszące się do tego samego projektu. I spróbować edytować oba pliki na raz, wywołując konflikty. Konkflikty, to zgroza SVN. Choć z drugiej strony pomyśleć, że kiedyś nie było automatu, który by nam mówił, że coś zepsuliśmy i trzeba było to robić ręcznie oO.
|