Michał (plucho) Wronkaplucho@gmail.com Subversion Wykorzystanie i administracja repozytorium



Podobne dokumenty
SVN sojusz, partnerstwo, współpraca

SUBVERSION TOMASZ ŁUKASZUK

Subversion. System wersjonowania projektów. Instytut Informatyki Politechnika Poznańska

Systemy zarządzania wersjami

Środowisko programisty. Środowisko programisty 1/35

Wprowadzenie do systemu wersjonowania svn

Subversion - jak dziaªa

Konfiguracja i administracja systemem kontroli wersji SVN

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010

Co zostanie wypisane na ekranie? (1)

System kontroli wersji Git

CVS system kontroli wersji

Programowanie I

1 Tworzenie własnego zaproszenia dla powłoki bash

Techniki komputerowe w robotyce

Assembla.com zajęcia 1

Ćwiczenia 9: Zarządzanie konfiguracją Zadania:

Adam Wójs <adam[shift+2]wojs.pl> git --wprowadzenie

System kontroli wersji, system zarządzania kodem źródłowym

Nowy system kontroli wersji oprogramowania. Jacek Prucia

System kontroli wersji git

System zarządzania wersjami I Subversion

KOŁO NAUKOWE INFORMATYKÓW SYSTEMY KONTROLI WERSJI CZ.1 16 XII 2009 OPRACOWAŁ: PRZEMYSŁAW PARDEL

Podstawowy warsztat informatyka

Microsoft Visual SourceSafe uproszczona instrukcja użytkowania

Systemy Kontroli Wersji

Systemy kontroli wersji

GIT. System Kontroli wersji GIT. Rafał Kalinowski

Subversion jest systemem kontroli wersji

Przygotowanie platformy projektowo-programowej

git krótki przewodnik

KONFIGURACJA CVS MAREK GRZEŚ

Systemy kontroli wersji

System kontroli wersji SVN

Projektowanie oprogramowania systemów NARZĘDZIA PRACY GRUPOWEJ, KONTROLI WERSJI, DOKUMENTOWANIA I ŚLEDZENIA BŁĘDÓW

Platforma GitHub. 1 Cel laboratoriów. 2 GitHub. 2.1 Git. źródeł.

Rozproszony system kontroli wersji GIT. Piotr Macuk

Git i platforma GitHub

ponad pracowników ponad pracowników ponad pracowników ponad pracowników

Jak usprawnić tworzenie i zarządzanie stroną na drupalu. Maciej Łukiański

SubVersion. Piotr Mikulski. SubVersion. P. Mikulski. Co to jest subversion? Zalety SubVersion. Wady SubVersion. Inne różnice SubVersion i CVS

Zarządzanie projektami informatycznymi

Open Source w służbie developerom

Komendy Ubuntu MARCEL GAŃCZARCZYK 2T I 1

Wstęp do systemów wielozadaniowych laboratorium 02 Praca w systemie plików

Partnerzy: Laboratorium 15

Wstęp do systemów wielozadaniowych laboratorium 03 Praca w powłoce UNIX-owej

Git - podstawy. Błażej Kowalczyk. Koło Naukowe Robotyków KoNaR. 7 listopada 2014

MBUM #2. Zarządzanie kopiami konfiguracji RouterOS. Jacek Rokicki

Użytkowanie PortableGit w systemie Windows. 1. Najważniejsze informacje

Drupal i GIT. Schemat pracy.

Systemy operacyjne- tematy do opracowania

Git rozproszony system kontroli wersji

SVN - wprowadzenie. 1 Wprowadzenie do SVN. 2 U»ywanie SVN. Adam Krechowicz. 16 lutego Podstawowe funkcje. 2.1 Windows

Specyfikacja testów akceptacyjnych Radosław Iglantowicz, Tomasz Bruździński,

GIT. Rozproszony system kontroli wersji

host name: protokół SSH System plików - wprowadzenie Ścieżki dostępu

PERFORCE SYSTEM KONTROLI WERSJI W ZASTOSOWANIACH

Bezpieczeństwo systemów informatycznych

Systemy kontroli wersji git od wewnatrz Użycie gita Koniec. git. Rozproszony system kontroli wersji. sphere.pl. Koło Naukowe Sfera

Podstawowy warsztat informatyka

4. Podstawowa konfiguracja

Programowanie Zespołowe

MeetingHelper. Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania. Instrukcja obsługi dla programisty

Pracownia Komputerowa wykład II

Dokumentacja kompilacji źródeł aplikacji 1.0

Programowanie zespołowe

Tak. Konrad Ktoso Malawski blog.project13.pl - SFI

Ko n f i gura cja p ra cy V ISO z bazą SQL S e rve r

Linux cz.3: polecenia systemowe, ćwiczenia

Narzędzia kontroli wersji Subversion

Przygotowanie bazy do wykonywania kopii bezpieczeństwa

Konfiguracja oprogramowania w systemach MS Windows dla kont z ograniczonymi uprawnieniami

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Programowanie zespołowe

CVS dla programisty lub amatora

Ćwiczenia Linux konsola

Konfiguracja serwera Apache jako serwera repozytorium kodu SVN

1. System kontroli wersji Instalacja programu kontroli wersji CVS

Win Admin Replikator Instrukcja Obsługi

Wykonywanie kopii bezpieczeństwa w bazie Oracle 11g

BlackHole. Bezpieczne Repozytorium Ważnych Zasobów.

Podstawy Informatyki. Michał Pazdanowski

ibok Internetowe Biuro Obsługi Klienta

Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania.

Sprawozdanie. (notatki) Sieci komputerowe i bazy danych. Laboratorium nr.3 Temat: Zastosowanie protokołów przesyłania plików

Instalacja serwera baz danych PostgreSQL ze źródeł i pierwsze uruchomienie

Git, Bitbucket. Narzędzia i środowiska programistyczne. Laboratorium 2. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

System Comarch OPT!MA v. 17.1

Projektowanie systemów baz danych

1 Tworzenie własnego zaproszenia dla powłoki bash

Windows Server 2008 Standard Str. 1 Ćwiczenia. Opr. JK. I. Instalowanie serwera FTP w Windows Server 2008 (zrzuty ekranowe z maszyny wirtualnej)

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

Map Reduce Wprowadzenie do Apache Hadoop

trainxx tramxx

SVN - wprowadzenie. 1 Wprowadzenie do SVN. 2 U»ywanie SVN. Adam Krechowicz 24 czerwca Podstawowe funkcje. 2.1 Windows

System Trac wykorzystuje interfejs WWW, aby ułatwić i wspomóc zarządzanie projektem. Oprócz tego umożliwia śledzenie zgłoszonych błędów i usterek.

Wstęp do systemów wielozadaniowych laboratorium 03 Praca z plikami, c.d.

Konfiguracja oprogramowania w systemach MS Windows dla kont z ograniczonymi uprawnieniami

Wykaz zmian w programie SysLoger

Transkrypt:

Subversion Wykorzystanie i administracja repozytorium Michał (plucho) Wronka plucho@gmail.com 14.01.2006

Repozytorium Część I Odrobina Teorii

Repozytorium Ogólna koncepcja Modele wersjonowania 1 Repozytorium Ogólna koncepcja Modele wersjonowania

Repozytorium Ogólna koncepcja Modele wersjonowania Czym jest repozytorium? przechowalnia danych struktura drzewiasta katalogów i plików zapis i odczyt przez wielu użytkowników pełna historia zmian od początku repozytorium

Repozytorium Ogólna koncepcja Modele wersjonowania Repozytorium inaczej If C gives you enough rope to hang yourself, think of Subversion as of rope storage facility Brian W. Fitzpatrick

Repozytorium Ogólna koncepcja Modele wersjonowania Wielu użytkowników a repozytorium Lock-Modify-Unlock Copy-Modify-Merge

Podstawy Część II Korzystanie z repozytorium

Podstawy Dostęp do repozytorium Cykl pracy Eksportowanie 2 Podstawy Dostęp do repozytorium Cykl pracy Eksportowanie 3 Konflikty Historia zmian Ignorowanie plików Odzyskiwanie usuniętych elementów 4 Gałęzie rozwojowe Scalanie Etykietowanie wersji

Klienty Subversion Podstawy Dostęp do repozytorium Cykl pracy Eksportowanie svn konsola RapidSVN widok drzewiasty projektu TortoiseSVN integracja z Explorerem, tylko Windows http://subversion.tigris.org/ http://rapidsvn.tigris.org/ http://tortoisesvn.tigris.org/

Podstawy Protokoły dostępu do repozytorium Dostęp do repozytorium Cykl pracy Eksportowanie file:// dostęp lokalny http:// Apache2 + mod dav svn https:// Apache2 + mod dav svn + SSL svn:// svnserve svn+ssh:// svnserve + tunel SSH

Podstawy Pobranie kodu z repozytorium Dostęp do repozytorium Cykl pracy Eksportowanie svn checkout (co) svn co <dostęp> [użytkownik@serwer] <ścieżka>

Podstawy Pobranie kodu z repozytorium Dostęp do repozytorium Cykl pracy Eksportowanie svn checkout (co) svn co <dostęp> [użytkownik@serwer] <ścieżka> svn co svn://10.10.10.1/usr/svnroot/svn/trunk/ użytkownik, hasło identycznie do kont na serwerze

Podstawy Cykl pracy użytkownika Subversion Dostęp do repozytorium Cykl pracy Eksportowanie 1 update 2 add, delete, copy, move, mkdir 3 status, diff, revert 4 merge, resolved 5 commit

Etap 1 update Podstawy Dostęp do repozytorium Cykl pracy Eksportowanie svn update (up) svn up -r 5 A dodanie pliku D usunięcie pliku U modyfikacja pliku C konflikt G sklejenie różnych wersji (konflikt nie wystąpił)

Podstawy Dostęp do repozytorium Cykl pracy Eksportowanie Etap 2 add, delete, copy, move, mkdir svn add svn delete (del, remove, rm) svn copy (cp) svn move (mv, rename, ren) svn mkdir ręczna edycja zawartości plików

Podstawy Etap 3 status, diff, revert Dostęp do repozytorium Cykl pracy Eksportowanie svn status (st) svn st --verbose svn diff svn revert powyższe operacje w trybie offline svn st --show-updates (online)

Podstawy Etap 4 merge, resolved Dostęp do repozytorium Cykl pracy Eksportowanie svn merge svn resolved

Etap 5 commit Podstawy Dostęp do repozytorium Cykl pracy Eksportowanie svn commit (ci) svn ci svn ci -m Komentarz zmian, których dokonaliśmy

Eksportujemy kod Podstawy Dostęp do repozytorium Cykl pracy Eksportowanie svn export [-r REV] URL PATH svn export [-r REV] PATH1 PATH2

Podstawy Konflikty Historia zmian Ignorowanie plików Odzyskiwanie usuniętych elementów 2 Podstawy Dostęp do repozytorium Cykl pracy Eksportowanie 3 Konflikty Historia zmian Ignorowanie plików Odzyskiwanie usuniętych elementów 4 Gałęzie rozwojowe Scalanie Etykietowanie wersji

Podstawy Powstawanie konfliktów Konflikty Historia zmian Ignorowanie plików Odzyskiwanie usuniętych elementów svn up modyfikujemy plik foo.c svn ci => Out of date svn up C foo.c foo.c.mine, foo.c.roldrev, foo.c.rnewrev

Podstawy Rozwiązywanie konfliktów Konflikty Historia zmian Ignorowanie plików Odzyskiwanie usuniętych elementów ręczna edycja pliku svn resolved <plik> skopiowanie jednego z utworzonych svn resolved <plik> svn revert <plik>

svn log Podstawy Konflikty Historia zmian Ignorowanie plików Odzyskiwanie usuniętych elementów svn log --revision 5:9 [plik] svn log -r 9:5 svn log -r 8 svn log --verbose svn log -r 8 -v

Historii ciąg dalszy Podstawy Konflikty Historia zmian Ignorowanie plików Odzyskiwanie usuniętych elementów svn diff [plik katalog] svn diff --revision 9 svn diff -r 5:9 svn cat <plik> svn list (ls) [plik katalog] svn info [plik katalog]

Podstawy Jak zignorować pliki? Konflikty Historia zmian Ignorowanie plików Odzyskiwanie usuniętych elementów mechanizm properties właściwość svn:ignore svn propset (pset) (ps) svn ps svn:ignore *.o <plik katalog> svn ps svn:ignore -f <lista> <plik katalog> svn propdel (pdel) (pd) svn pd svn:ignore <plik katalog>

Podstawy Konflikty Historia zmian Ignorowanie plików Odzyskiwanie usuniętych elementów Modyfikujemy listę plików ignorowanych svn proplist (plist) (pl) svn pl <plik katalog> svn propget (pget) (pg) svn pg svn:ignore <plik katalog> svn propedit (pedit) (pe) svn pe svn:ignore <plik katalog>

Podstawy Wskrzeszanie plików i katalogów Konflikty Historia zmian Ignorowanie plików Odzyskiwanie usuniętych elementów zlokalizuj, kiedy plik został usunięty svn log --verbose skopiuj plik sprzed usunięcia svn copy -r 23 svn://10.10.10.1/usr/svnroot/svn/file.c./file.c svn commit historia pliku sprzed usunięcia jest dostępna

Podstawy Gałęzie rozwojowe Scalanie Etykietowanie wersji 2 Podstawy Dostęp do repozytorium Cykl pracy Eksportowanie 3 Konflikty Historia zmian Ignorowanie plików Odzyskiwanie usuniętych elementów 4 Gałęzie rozwojowe Scalanie Etykietowanie wersji

Podstawy Gałęzie rozwojowe Scalanie Etykietowanie wersji Po co gałęzie rozwojowe? Po co wersjonowanie? duże zmiany w kodzie jednoczesna praca nad kilkoma wersjami zamrażanie kodu w danej wersji 1.0, 1.2 dostęp do wszystkich nazwanych wersji

Podstawy Jak to zrobiono w Subversion? Gałęzie rozwojowe Scalanie Etykietowanie wersji zalecana struktura katalogów w repozytorium tlug/trunk tlug/branches tlug/tags kopiowanie całych drzew katalogów zachowanie historii zmian cheap copy bez fizycznej duplikacji plików

Podstawy Tworzymy nową gałąź Gałęzie rozwojowe Scalanie Etykietowanie wersji svn co svn://10.10.10.1/usr/svnroot/svn/ svn cp trunk branches/my-branch svn ci -m "Nowa gałąź" svn cp svn://10.10.10.1/usr/svnroot/svn/trunk svn://10.10.10.1/usr/svnroot/svn/branches/nowa -m "Nowa gałąź"

Podstawy Zaczynamy pracę na gałęzi Gałęzie rozwojowe Scalanie Etykietowanie wersji svn co svn://10.10.10.1/usr/svnroot/svn/branches/my-branch svn switch svn://10.10.10.1/usr/svnroot/svn/branches/my-branch historia przed stworzeniem gałęzi svn switch --relocate <current-path> <new-path>

Jak i po co scalać? Podstawy Gałęzie rozwojowe Scalanie Etykietowanie wersji poprawianie literówek w trunku i gałęziach włączenie kompletnego i przetestowanego kodu z gałęzi do głównej linii rozwojowej svn merge -r 343:344 svn://10.10.10.1/usr/svnroot/svn/trunk Subversion nie pamięta scaleń ryzyko podwójnej aplikacji zmiany Dobre nawyki

Dobre nawyki Podstawy Gałęzie rozwojowe Scalanie Etykietowanie wersji umieszczanie dokładnego opisu scalenia (wersji) w logach scalanie na sucho svn merge --dry-run

Podstawy Scalanie całych gałęzi Gałęzie rozwojowe Scalanie Etykietowanie wersji svn log --verbose --stop-on-copy

Podstawy Nabroiliśmy, jak to odkręcić? Gałęzie rozwojowe Scalanie Etykietowanie wersji scalanie wstecz svn merge -r 303:302 <repository-path>

Upragnione 1.0.0 Podstawy Gałęzie rozwojowe Scalanie Etykietowanie wersji analogicznie do tworzenia gałęzi rozwojowych katalog /tags svn cp svn://10.10.10.1/usr/svnroot/svn/trunk svn://10.10.10.1/usr/svnroot/svn/tags/alpha-release -m komentarz svn cp my-repo svn://10.10.10.1/usr/svnroot/svn/tags/alpha-release

W pigułce Część III Administracja

W pigułce Zakładanie repozytorium Konfiguracja dostępu Skrypty 5 W pigułce Zakładanie repozytorium Konfiguracja dostępu Skrypty

W pigułce Zakładanie repozytorium Konfiguracja dostępu Skrypty Tworzymy nowe repozytorium svnadmin create <nazwa> --fs-type <fsfs bdb> su svnroot cd /home/svnroot svnadmin create tlug

svnserve W pigułce Zakładanie repozytorium Konfiguracja dostępu Skrypty /etc/services svn 3690/tcp #Subversion svn 3690/udp #Subversion /etc/rc.d$/inetd.conf # SVN svnserve svn stream tcp nowait svnroot\ /usr/bin/svnserve svnserve -i

Kontrola dostępu W pigułce Zakładanie repozytorium Konfiguracja dostępu Skrypty #conf/svnserve.conf [general] anon-access = read auth-access = write password-db = passwd realm = TLUG #conf/passwd.conf [users] plucho=haslo_plaintext

W pigułce Zakładanie repozytorium Konfiguracja dostępu Skrypty Hook scripts hooks/ post-commit post-lock post-revprop-change post-unlock pre-commit pre-lock pre-revprop-change pre-unlock start-commit

Odnośniki Subversion a CVS Część IV Załączniki

Odnośniki Subversion a CVS Odnośniki http://svnbook.red-bean.com/ http://subversion.tigris.org/ http://rapidsvn.tigris.org/ http://tortoisesvn.tigris.org/

Odnośniki Subversion a CVS Subversion a CVS wersjonowanie całych katalogów, nie indywidualnych plików prawdziwa historia zmiany nazw plików i kopiowanie zachowuje historię zmian atomowość dostępu do repozytorium zróżnicowane sposoby dostępu do repozytorium efektywne gałęzie hard-link projekt nie tyje tak szybko