Od poniedziałku 1 grudnia 2008 zaczeliśmy używać Subversion do kontroli zmian w projekcie forum. Do tego czasu proszę wysłać wszystkie dotychczasowe zmiany do Krzyska Jachorka w celu przygotowania wersji wyjściowej do naszego archiwum.
Aby pracować z systemem kontroli wersji należy zainstalowac TortoiseSVN dostępny na komputerze krzyska file://192.168.12.73/ … Applications\SUBVERSION_Instalki\
Poniżej wyciąg z artykułów dotyczących SVN oraz Tortoise z którym należy się zapoznac. Sugeruje lekturę artykułów do których linki podalem na koncu maila.
W przypadku jakichkolwiek pytań walić smiało … "stoję do was otworem" jak mawiał jeden z moich dawnych wykładowców.
Z czasem będzie tu opis mojego autorstawa jak to wszystko ze soba pokonfigurować i uzywać, chwilo z braku chęci wkleję fragmenty tego co znalazłem w sieci wraz z linkami gdzie to znalazłem.
Codzienna praca z systemem SVN
Praca w systemie SVN sprowadzi się do cyklicznego powtarzania pewnych poleceń. Najpierw, w zależności od twojej roli w projekcie, wykonasz bądź instalację nowego projektu (np. wykorzystując operację svn import), bądź pobierzesz aktualny stan projektu (operacja svn checkout). Podczas codziennej pracy będziesz wykonywał:
• operację svn update w celu pobrania najnowszych zmian w projekcie
• poddasz dowolne pliki edycji oraz wykonasz liczne operacje na plikach i katalogach (svn add, svn delete, svn move, itd.)
• wykonane zmiany prześlesz na serwer (svn commit)
Pamiętaj, że update oraz commit są operacjami niezależnymi. Wykonanie update nigdy nie pociąga za sobą automatycznego wykonania commit i na odwrót: wykonanie commit nigdy nie pociąga za sobą automatycznego wykonania update.
Kopiuj
Najpierw wykonaj kopię plików z serwera. Proces ten polega na przekopiowaniu aktualnej wersji oprogramowania na twój dysk. Otrzymana kopia jest niezależna od serwera: możesz na niej pracować, wykonując dowolne zmiany. Kopię wykonuje się poleceniem checkout (skrót: co):
1. svn checkout http://...
2. svn co http://...
klienta tekstowego lub przy użyciu opcji SVN Checkout... programu TortoiseSVN.
Modyfikuj
Modyfikacje plików projektu możesz wykonywać dowolnym edytorem. Otwierasz plik, zmieniasz zawartość i zapisujesz. Nie ma znaczenia oprogramowanie, jakie stosujesz do edycji pliku, rozszerzenie pliku czy ilość zmian. Plik możesz otworzyć wielokrotnie i zmieniać w dowolnych miejscach. Jeśli chcesz do projektu dodać nowe pliki, nie możesz tej operacji wykonać w standardowy sposób. Pliki utworzone eksploratorem Windows nie są automatycznie dodawane do projektu, nawet jeśli są umieszczone w jednym z folderów kopii roboczej. Do tego służą polecenia add:
svn add ...
oraz opcja TortoiseSVN > Add klienta graficznego. Po utworzeniu nowego pliku lub folderu musisz koniecznie wykonać operację svn add lub Tortoise- SVN > Add.
Podobne ograniczenia dotyczą wszystkich operacji na plikach i katalogach. Operacje na plikach i katalogach należy wykonywać poleceniami:
• svn add - dodawanie plików, katalogów i linków
• svn copy - kopiowanie plików i folderów
• svn delete - usuwanie plików i folderów
• svn mkdir - tworzenie nowego folderu
• svn move - przenoszenie pliku lub folderu
Scal
Scalenie lokalnych zmian z wersją przechowywaną na serwerze wykonasz poleceniem commit (skrót ci):
1. svn commit ...
2. svn ci ...
Listing zwinięty - 2 linii
lub korzystając z opcji SVN Commit programu TortoiseSVN.
Dodatkowe operacje i możliwości Subversion
Update
Jeśli pracowałeś już na danym projekcie, wówczas nie ma potrzeby wykonywania operacji checkout. W takim przypadku wystarczy operacja update:
svn update ...
dostępna w postaci opcji SVN Update programu TortoiseSVN. Operacja ta gwarantuje, że lokalna kopia robocza projektu będzie zgodna z zawartością na serwerze.
Import
Szczególnym sposobem dodawania plików do projektu jest import. Operacja ta jest przydatna w początkowej fazie pracy nad projektem w systemie SVN. Jeśli projekt, który składa się już z wielu plików i folderów, zamierzasz poddać kontroli systemem SVN, wykorzystaj operację import.
Najpierw utwórz nowy pusty projekt SVN o nazwie template, przechowywany w folderze C:svnrepositorytemplate i dostępny poprzez URL http://localhost/svntemplate. Następnie kliknij prawym klawiszem myszy na folderze zawierającym potrzebne pliki. Z menu kontekstowego wybierz operację TortoiseSVN > Import.
Zostanie wyświetlone okno dialogowe importu. Wprowadź w nim adres URL, pod jakim projekt będzie dostępny: http://localhost/svntemplate.
Na zakończenie wczytaj w przeglądarce internetowej adres http://localhost/svntemplate. Ujrzysz projekt o numerze rewizji 1, zawierający wszystkie pliki, jakie znajdowały się wewnątrz folderu. Podczas korzystania z klienta tekstowego import przeprowadza się, korzystając z komendy:
svn import ...
Operacja import powoduje dodanie wszystkich plików i folderów do projektu (czyli wykonanie operacji add) i przesłanie wprowadzonych zmian na serwer (czyli wykonanie operacji commit).
I z innego artykułu
a) Dodanie pliku Pliki dodajemy za pomocą polecenia:svn add [plik(i) lub folder(y)]Po wykonaniu tej komendy pliki zostaną oznaczone jako oczekujące na dodanie. Rzeczywiste dodanie nastąpi w momencie najbliższego commitu. Jeśli wskazany został folder cała jego zawartość również zostanie dodana do repozytorium.Foldery możemy także utworzyć za pomocą poleceniasvn mkdir [folder]Jeśli utworzymy pliki normalnymi poleceniami systemu i nie dodamy ich za pomocą svn add nie będą wersjonowane! b) Usunięcie pliku Pliki usuwamy za pomocą:svn delete [plik(i) lub folder(y)]Jeśli wybrany został plik natychmiast zniknie on z kopii roboczej, jeśli folder to zostanie on (i jego zawartość) oznaczone jako do usunięcia. Rzeczywiste usunięcie plików z repozytorium nastąpi, podobnie jak w przypadku svn add dopiero przy najbliższym commicie. Jeśli skasujemy plik normalnymi poleceniami systemu a nie za pomocą svn delete zostaną ponownie pobrane z repozytorium przy najbliższym update. Warto o tym pamiętać - jeśli coś solidnie popsuliśmy wystarczy skasować "popsuty" plik lub folder i wykonać update by móc cieszyć się poprzednią wersją pliku.c) Przenoszenie i kopiowanie plików Wykonujemy za pomocą poleceńsvn move [źródło] [cel] svn copy [źródło] [cel] Co najważeniejsze SVN "pamięta" całą historię kopiowanego pliku. Podobnie jak w przypadku dodawania i kasowania plików trzeba wykonać commit by zmiany zostały zapisane w repozytorium.d) Dokonywanie zmian w plikach W wypadku zwykłych zmian w plikach nie musisz używać żadnych specjalnych komend Subversion. Po prostu edytujesz pliki w swoim ulubionym edytorze.3) Sprawdzenie jakie zmiany zostały dokonane Przed wysłaniem wyniku swojej pracy do repozytorium warto sprawdzić co tak na prawdę zmieniliśmy. Co najważniejsze wszystkie przedstawione w tym punkcie komendy nie wymagają połączenia z repozytorium. Wszystkie potrzebne dane znajdują się w katalogach .svn Do tego celu możemy wykorzystać:a) Wykaz zmian Wykaz wszystkich zmienionych plików i folderów otrzymamy za pomocą polecenia:svn statusZwrócona zostanie lista plików poprzedzona sześcioma kolumnami informującymi o rodzaju zmian. Nas na razie interesuje jedynie pierwsza kolumna zawierająca oznaczenia podobne do tych poznanych w komendzie svn update I tak: A - element przygotowany do dodania, D - element przygotowany do skasowania, U - element zmodyfikowany, R - zamieniony (element został przygotowany do skasowania a następnie został utworzony nowy o tej samej nazwie), ? - element nie podlegający wersjonowaniu (na przykład plik dodany normalnymi metodami a nie za pomocą svn add), ! - brakujący element (na przykład skasowany normalnymi metodami a nie za pomocą svn delete)b) Wyszczególnienie zmian w pliku Czasem może się zdarzyć, że nie pamiętamy jakich zmian dokonaliśmy w pliku. Pomocne wtedy jest polecenie:svn diffZwraca ono listę zmian w plikach w formacie unified diff format4) Cofnięcie zmian Dopóki nie dokonaliśmy commitu możemy łatwo cofnąć wprowadzone w kopii roboczej zmiany. Używamy polecenia:svn revertsvn revert [nazwa pliku]Polecenie bardzo przydatne jeśli przez pomyłkę skasowaliśmy jakiś plik lub rozmyśliliśmy się jeśli chodzi o zmiany.5) Pobranie aktualnych wersji plików Tak, tak. Po raz kolejny wykonujemy update by sprawdzić czy nikt inny nie dokonał zmian w tych samych plikach co my. W większości wypadków Subversion bez problemu poradzi sobie z wprowadzeniem odpowiednich zmian. Problem pojawi się gdy okaże się, że ktoś edytował ten sam fragment pliku co my. Subversion nie jest w stanie samemu zaktualizować pliku i pojawia się konflikt (pamiętacie literkę 'C' w svn update?)6) Rozwiązywanie konfliktów W momencie powstania konfliktu Subversion tworzy 3 nowe pliki i modyfikuje plik będący w konflikcie. Trzy nowe pliki to:plik.mine - wersja pliku z naszymi zmianamiplik.rOLDREV - gdzie OLDREV to numer rewizji sprzed naszych zmianplik.rNEWREV - gdzie NEWREV to numer rewizji aktualnej wersji w repozytorium (ze zmianami wprowadzonymi przez kogoś innego)W pliku będącym w konflikcie dopisane zostają dodatkowe linijki z zaznaczonym konflikotwym fragmentem w formie:linia niezmieniona<<<<<<< .minelinia zmieniona przeze mnie=======linia zmieniona przez kogoś>>>>>>> .rNEWREVlinie niezmienionaPo skontaktowaniu się z osobą, która wprowadziła swoje zmiany poprawiamy plik by zawierał ostateczną wersję (edytując go odpowiednio lub używając jednego z 3 plików jako wzoru) i wykonujemy polecenie:svn resolved [nazwa pliku]Subversion przygotuje plik i konflikt zostanie rozwiązany przy najbliższym commicie. Przy okazji skasowane zostaną trzy dodatkowe pliki (.mine, rOLDREV, .rNEWREV)7) Wysłanie zmian do repozytorium Gdy mamy już aktualne wersje plików i nie ma konfliktów wreszcie możemy wysłać zmiany do repozytorium za pomocą polecenia:svn commitPrzy wysyłaniu commitu musimy dodać komentarz z opisem, który zostanie dołączony do logów. Jeśli użyjemy polecenia commit w formie jak powyżej otworzy się domyślny edytor tekstu, w którym możemy wpisać komentarz. Możemy również użyć polecenie w formie:svn commit -m "treść komentarza"Rzecz jasna by wykonać to polecenie musimy nawiązać połączenie z repozytorium. W tym momencie możemy rozpocząć nasz cykl pracy od początku.
Dla bardziej ambitnych linki skąd wyczytałem powyższe
http://svnbook.red-bean.com/nightly/en/svn-book.html
http://pl.wikipedia.org/wiki/System_kontroli_wersji
http://pl.wikipedia.org/wiki/Subversion
http://kosciak.blox.pl/2007/11/Wersje-pod-kontrola.html
http://serwis.magazynyinternetowe.pl/artykul/697,1,0,subversion_-_system_kontroli_wersji.html
http://jakilinux.org/aplikacje/subversion--dla-kazdego
http://www.programuj.com/artykuly/rozne/subversion.php
http://subversion.tigris.org/faq.html
http://www.maciejaniserowicz.com/post/2008/06/02/Kontrola-wersji-w-5-minut.aspx
http://clarionmagazine.com/cmag/v7/v7n05tortoise.html
Przemyślenia powstałe podczas tworzenia programów w Clarionie.
Subskrybuj:
Komentarze do posta (Atom)
Brak komentarzy:
Prześlij komentarz