== What is what == SVN = Subversion = a tool for file repository with full change history. Trac = web application that includes a wiki, SVN view and tickets. Ticket = submitted bug or idea, e.g. jhusak submitted ticket:1 for putting ASMA in the SVN and pfusik did it. == Language == Make sure Trac interface is in English. Polish translation is incomplete. On the top click Preferences, Language, English (United States), Save changes. == Trac navigation == On the top bar: * Wiki * Timeline - Traca + SVNa history, e.g. * wiki page edit * ticket - bug or idea * changeset is a change in SVN (e.g. in changeset:4 I have uploaded ASMA 3.4) * Roadmap - our goals and how far we are according to tickets * Browse Source - read-only view on the SVN * View Tickets * New Ticket * Search == SVN Basics == SVN (subversion) is a version control system. In such systems nothing is ever lost, the history of changes is always available with the author, you can always revert to a previous version and fix any problem (see below). As you can see in the Browse Source tab, there are three top directories in SVN: * branches - for the more advanced users, we don't use it yet * tags - contains tagged versions, for example I have put ASMA 3.4 here, we can put here all releases and betas, but we don't edit files directly here * trunk - it's the main work space, you can browse it from Trac, but it's much more comfortable to have a copy on your disk (see below) Every write to SVN is registered in its history - which you see in Timeline. A write is a "changeset". A changeset has the following attributes: * ordinal number * author's login * timestamp * log message - short text written by the author to summarize the change * the changes - added/changed/removed files or directories SVN can be browsed from Trac. To make changes, you need an SVN client. The most popular SVN client for Windows is TortoiseSVN. == TortoiseSVN Installation == http://tortoisesvn.net/downloads.html Choose 32-bit or 64-bit to match your Windows version. Any installation is fine, you can uncheck the unnecessary things such as extra icons, command-line tools and dictionaries. After the installation the context menu of Windows Explorer has additional TortoiseSVN commands. == Getting a local copy of SVN == Tworzymy na swoim dysku zwykły pusty katalog, gdzie będzie nasza kopia SVN. Dla ustalenia uwagi nazwę go asma-trunk (nazwa i położenie mogą być dowolne). Wchodzimy do tego katalogu, klikamy puste miejsce i TortoiseSVN / Checkout. W URL of repository wklejamy: {{{svn://84.201.216.109/test/trunk}}} Upewniamy się, że Checkout directory to dokładnie nasz pusty katalog. OK. Czekamy, aż się ściągnie. Możemy normalnie używać ściągniętych plików - otwierać w playerach i edytować. Z kasowaniem, zmianą nazwy i przenoszeniem trzeba ostrożnie (patrz niżej). == Podstawowe operacje SVN == Prawo-klik na naszym katalogu daje następujące operacje: * SVN Update - ściągnięcie nowych zmian, jeśli jakieś były * SVN Show Log - historia (to samo co w Tracu, tylko tutaj same zmiany w SVN) * SVN Commit - wrzucenie naszych zmian na serwer; w przypadku problemów zrobić najpierw SVN Update (inni wykonali zmianę na tym samym pliku co my. W przypadku konfliktów, bo 2 osoby zmieniły ten sam plik w tym samym miejscu, rozwiązujemy je samodzielnie lub przy udziale kolegów). * SVN Revert - odzyskanie przypadkowo skasowanego lub przeniesionego pliku zgodnie ze strukturą repozytorium SVN Jest jeszcze mnóstwo innych poleceń, ale są one używane dużo rzadziej. == Wprowadzanie zmian == Potraktujcie to, co jest, jako piaskownicę. Po oswojeniu się wszystkich zrobimy porządek i będziemy wprowadzać zmiany na poważnie. '''jhusak''': proponuję zrobić brancha z piaskownicą i tam się bawić, a w trunku niech siedzą rzeczy "już na poważnie". Najprościej jest zmienić plik, który jest już w SVN. Zmieniamy pliki normalnie - np. możecie przeedytować pliki tekstowe w notatniku. Następnie wybieramy SVN Commit - wyświetli się lista zmienionych plików. Wpisujemy na górze opis i zatwierdzamy (opis jest ważny bo wtedy wiadomo, co było zmienione). Wpisujemy swój login i hasło. Po chwili zmiany są widoczne dla wszystkich (muszą oni zrobić SVN Update). Aby dodać plik, normalnie umieszczamy go w katalogu, prawo-klik na nim i TortoiseSVN / Add. Następnie, aby wysłać dodane pliki, używamy SVN Commit jak wyżej. Aby usunąć plik, '''nie usuwamy go normalnie'''. Zamiast tego TortoiseSVN / Delete, potem SVN Commit. Aby zmienić nazwę pliku, TortoiseSVN / Rename, potem SVN Commit. Aby skopiować/przenieść plik, przesuwamy go '''prawym klawiszem''' - pojawi się menu z możliwością kopiowania, przenoszenia i ew. zmiany nazwy przy tej okazji. Potem SVN Commit. Tylko SVN Commit powoduje wysłanie naszych zmian na serwer. Inne operacje działają lokalnie na naszym komputerze. Na początek to wystarczy. Są pytania?