Subversion. System wersjonowania projektów. mailto:sobaniec@cs.put.poznan.pl. Instytut Informatyki Politechnika Poznańska



Podobne dokumenty
Michał (plucho) Subversion Wykorzystanie i administracja repozytorium

SUBVERSION TOMASZ ŁUKASZUK

SVN sojusz, partnerstwo, współpraca

Konfiguracja i administracja systemem kontroli wersji SVN

Środowisko programisty. Środowisko programisty 1/35

Programowanie I

Co zostanie wypisane na ekranie? (1)

Systemy zarządzania wersjami

Wprowadzenie do systemu wersjonowania svn

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

CVS system kontroli wersji

Subversion - jak dziaªa

GIT. System Kontroli wersji GIT. Rafał Kalinowski

1 Tworzenie własnego zaproszenia dla powłoki bash

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

Microsoft Visual SourceSafe uproszczona instrukcja użytkowania

Ćwiczenia 9: Zarządzanie konfiguracją Zadania:

Assembla.com zajęcia 1

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

System kontroli wersji Git

System kontroli wersji git

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

Git rozproszony system kontroli wersji

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

Rozproszony system kontroli wersji GIT. Piotr Macuk

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

Systemy Kontroli Wersji

Nowy system kontroli wersji oprogramowania. Jacek Prucia

Systemy kontroli wersji

Techniki komputerowe w robotyce

Git, Bitbucket, IntelliJ IDEA

git krótki przewodnik

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

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

Usługi sieciowe systemu Linux

System kontroli wersji SVN

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

Instalacja pakietu SAS 9.3 Audit, Performance and Measurement na platformie Windows

Przygotowanie platformy projektowo-programowej

KONFIGURACJA CVS MAREK GRZEŚ

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

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

Win Admin Replikator Instrukcja Obsługi

Win Admin Replikator Instrukcja Obsługi

LWEB-900: Nowoczesny i wszechstronny system BMS

System zarządzania wersjami I Subversion

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Serwer SAMBA UDOSTĘPNIANIE UDZIAŁÓW SIECIOWYCH PIOTR KANIA

Gra-zabawka dla niemowląt przygotowana z użyciem w Unity 3D

Zarządzanie projektami informatycznymi

Open Source w służbie developerom

finiownia loginów. W zależności od ustawionej opcji użytkownik login:

Wdrożenie modułu płatności eservice. dla systemu Magento

Jak zatrudnić słonie do replikacji baz PostgreSQL

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Projektowanie systemów baz danych

GIT. Rozproszony system kontroli wersji

Tworzenie kopii zapasowych i archiwalnych

Win Admin Replikator Instrukcja Obsługi

Wykaz zmian w programie Win Admin Replikator

AE/ZP-27-16/14. Oprogramowanie do wykonywania kopii zapasowych oraz zarządzania maszynami wirtualnymi

1 Instalowanie i uaktualnianie serwera SQL Server

Sieciowa instalacja Sekafi 3 SQL

Partnerzy: Laboratorium 15

KATEGORIA OBSZAR WIEDZY NR ZADANIA Podstawowe informacje i czynności

Bazy danych NoSQL Część III. Maciej Zakrzewicz Politechnika Poznańska, Instytut Informatyki,

Aktualizacja baz danych systemu qs-stat

Wykaz zmian w programie WinAdmin Replikator

Przygotowanie bazy do wykonywania kopii bezpieczeństwa

Administracja bazami danych

Wprowadzenie do Active Directory. Udostępnianie katalogów

Podstawowy warsztat informatyka

Git i platforma GitHub

Windows Serwer 2008 R2. Moduł 8. Mechanizmy kopii zapasowych

1 Tworzenie własnego zaproszenia dla powłoki bash

11. Autoryzacja użytkowników

Laboratorium 7 Blog: dodawanie i edycja wpisów

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

Programowanie zespołowe

PROCEDURA BACKUP & RECOVER Dokument opisuje procedurę backup u i odtwarzania dla bazy Oracle 11gR2

Zbuduj prywatną chmurę backupu w firmie. Xopero Backup. Centralnie zarządzane rozwiązanie do backupu serwerów i stacji roboczych

Lp. Parametry Wymagane Warunek Opisać 1 Serwer 1.1 Producent oprogramowania Podać 1.2 Kraj pochodzenia Podać 1.3. Wymóg.

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3

Programowanie zespołowe

Trochę o plikach wsadowych (Windows)

Wykaz zmian w programie SysLoger

Ogólne informacje o Systemie Archiwizacji ZEUS

Panda Managed Office Protection. Przewodnik. Panda Managed Office Protection. Przewodnik

Szczegółowy opis przedmiotu umowy. 1. Środowisko SharePoint UWMD (wewnętrzne) składa się z następujących grup serwerów:

Subversion jest systemem kontroli wersji

Spis treści. Dzień 1. I Konfiguracja sterownika (wersja 1410) II Edycja programu (wersja 1406) III Środowisko TIA Portal (wersja 1410)

BlackHole. Bezpieczne Repozytorium Ważnych Zasobów.

Win Admin Replikator Instrukcja Obsługi

SPECYFIKACJA FUNKCJONALNA OPROGRAMOWANIA 11 marca 2014 XLZEBRAPRINTER

Wdrożenie modułu płatności eservice dla systemu PrestaShop

EXSO-CORE - specyfikacja

MentorGraphics ModelSim

Polecenia wewnętrzne:

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

Podręcznik administratora systemu

Transkrypt:

Subversion System wersjonowania projektów CEZARY SOBANIEC mailto:sobaniec@cs.put.poznan.pl $Id: subversion.lyx 28 2004-03-26 08:12:57Z sobaniec $

Co to jest Subversion? Subversion jest systemem wersjonowania grup plików, umożliwia zarzadzanie wieloma współbieżnymi wersjami projektów, zastępuje CVS, usuwajac jego wady. Architektura centralne repozytorium analogia do systemu plików + przechowywanie historii wprowadzanych zmian przechowywanie dowolnych plików, również binarnych Historia 2000 CollabNet VIII 2001 źródła Subversion zarzadzane przez Subversion Subversion (1/45)

Główne cechy Subversion Wersjonowanie struktur katalogów Inaczej niż w przypadku CVS, wersjonowaniu podlegaja całe struktury katalogów. Użytkownik ma do dyspozycji nowe komendy: move i copy. Atomowe zatwierdzanie Zmiany zatwierdzane sa w całości albo w ogóle. Metadane podlegajace wersjonowaniu Do każdego pliku i/lub katalogu można przypisać dowolna liczbę własności (klucz wartość), których wartości podlegaja wersjonowaniu. Różne metody dostępu Lokalny system plików wbudowany prosty serwer moduł dla serwera Apache komunikujacy się zgodnie z protokołem WebDAV tunelowanie SSH. Subversion (2/45)

Główne cechy Subversion (cd) Jednolite przetwarzanie plików Zmiany w plikach sa przechowywane w postaci skompresowanej w taki sam sposób, bez względu na ich typ (pliki tekstowe, binarne). Efektywna komunikacja klient serwer Klient i serwer wysyłaja zawsze tylko zmiany pomiędzy wersjami plików (w CVS tylko serwer => klient). Efektywne tworzenie gałęzi pobocznych i etykietowanie Koszt utworzenia gałęzi pobocznej w projekcie jest stały i nie zależy od rozmiaru projektu (analogia do twardych dowiazań w systemie plików). Czytelny i rozszerzalny kod źródłowy Subversion to nowy projekt, tworzony od podstaw, z czytelnym i przejrzystym API gotowym do dalszej rozbudowy. Subversion (3/45)

Narzędzia Subversion Klient svn svnversion klient Subversion umożliwiajacy wprowadzanie zmian i pobieranie informacji z repozytorium. narzędzie wspomagajace do raportowania numerów wersji składowych katalogu roboczego. Serwer svnlook svnadmin svnserve mod dav syn narzędzie do pobierania różnych informacji z repozytorium. program do zarzadzania repozytorium (tworzenie, backup, itp.). samodzielny serwer zdalnego dostępu do repozytorium. moduł serwera Apache do zdalnego dostępu do repozytorium. Subversion (4/45)

Podstawowe pojęcia Repozytorium Centralny, wersjonowany system plików. Dane moga być pobierane przez dowolna liczbę klientów. Zapis do repozytorium umożliwia dostęp do nowych danych innym klientom. Repozytorium zapis odczyt odczyt Użytkownik 1 Użytkownik 2 Użytkownik 3 Subversion (5/45)

Model wersjonowania a) b) A A odczyt odczyt A A A A c) d) A A zapis A A A A zapis Subversion (6/45)

Współdzielenie plików Nadpisywanie zmian wprowadzonych przez innych użytkowników. Blokowanie dostępu do pliku (podejście pesymistyczne) Wiele blokad do odczytu, jedna blokada do zapisu. Problem nie zdjętych blokad. Nadmiarowa synchronizacja: edycja różnych fragmentów pliku tekstowego. Współbieżne, niekompatybilne zmiany w plikach zależnych od siebie. Subversion (7/45)

Współdzielenie plików (cd) Współbieżne modyfikacje (podejście optymistyczne) Replikacja danych u klientów. Zmiany pochodzace od różnych użytkowników sa przez nich integrowane i wprowadzane do repozytorium. Podejście optymistyczne: użytkownicy z reguły nie wprowadzaja konfliktowych zmian. Subversion (8/45)

Integracja zmian a) b) A A odczyt odczyt A A A A c) d) A A zapis zapis A A A A Subversion (9/45)

Integracja zmian (cd) e) f) A A odczyt A A A A A* g) h) A* A* A A* zapis odczyt A* A* Subversion (10/45)

Katalog roboczy Kopia danych z repozytorium. Zwykłe pliki, które moga być dowolnie modyfikowane. Zmiany po weryfikacji moga być wprowadzone do repozytorium. operacja commit Zmiany innych użytkowników moga być pobrane z repozytorium i integrowane z lokalna wersja projektu. operacja update Informacje zarzadzaj ace przechowywane sa w podkatalogu.svn ( svn w systemach Windows). Subversion (11/45)

Przykładowa sesja 1. Pobranie projektu z repozytorium # svn checkout svn://unixlab/proj1 # cd Proj1 # ls -a Makefile main.c const.h.svn 2. Wprowadzenie zmian do lokalnej kopi # vi main.c 3. Weryfikacja dokonanych zmian # svn status M main.c # svn diff Index: main.c =================================================================== --- main.c (revision 7) +++ main.c (working copy) 5c5,6 Subversion (12/45)

Przykładowa sesja (cd) 4. Zatwierdzenie zmian # svn commit Sending main.c Transmitting file data... Committed revision 8. 5. Pobranie innych zmian z repozytorium # svn update U const.h 6. Dodanie/usunięcie plików # svn add dane.c # svn delete const.h 7. Zmiana nazwy/lokalizacji pliku/katalogu # svn move dane.c data.c Subversion (13/45)

Adresy URL repozytoriów file:// http:// https:// svn:// svn+ssh:// bezpośredni dostęp do lokalnego repozytorium. dostęp za pośrednictwem protokołu WebDAV. podobnie jak http://, ale komunikacja jest kodowana. dostęp za pośrednictwem protokołu serwera svnserve. podobnie jak file:///, ale poprzez tunel SSH. Przykład svn+ssh://unixlab/var/svnroot/testproject ^^^^^^^^^^^ =========== fizyczny nazwa katalog projektu na serwerze Subversion (14/45)

Wersje repozytorium 0 1 2 3 4 ==================================================================================== / / / / / --Proj1 --Proj1 --Proj1 --Proj1 --Makefile --Makefile --Makefile --Makefile --main.c --main.c --main.c --main.c* --defs.h --defs.h --defs.h --defs.h --Proj2 --Proj2 --Proj2 --index.html --index.html --index.html --main.css --main.css ==================================================================================== import Proj1 import Proj2 add main.css update main.c Subversion (15/45)

Nowy projekt Przygotowanie repozytorium # svnadmin create /var/svnroot Wprowadzenie projektu do repozytorium # svn import NowyProjekt file:///var/svnroot/proj1 Adding NowyProjekt/Makefile Adding NowyProjekt/main.c Transmitting file data... Committed revision 1. Utworzenie katalogu roboczego # svn checkout file:///var/svnroot/proj1 A Proj1/Makefile A Proj1/main.c Checked out revision 1. # cd Proj1 Subversion (16/45)

Nowy projekt (cd) Utworzenie projektu i konwersja do katalogu roboczego # cd.. # svn mkdir file:///var/svnroot/proj1 # svn checkout file:///var/svnroot/proj1 # cd Proj1 # svn add Makefile main.c A Makefile A main.c # svn commit... Subversion (17/45)

Weryfikacja wprowadzonych zmian # svn status M Makefile MM main.c? defs.h Status pliku A D M C plik będzie dodany do repozytorium. plik będzie usunięty z repozytorium. plik zmodyfikowany lokalnie. konflikt pomiędzy aktualna wersja w repozytorium a wersja lokalna.? nieznany plik nie przechowywany w repozytorium.! brak pliku przechowywanego w repozytorium. Druga kolumna opisuje zmiany metadanych (własności). Subversion (18/45)

Weryfikacja wprowadzonych zmian (cd) # svn diff main.c Index: main.c =================================================================== --- main.c (revision 7) +++ main.c (working copy) @@ -2,6 +2,7 @@ int main() { - int x = 0; + int x = 1; + int y = 2 * x + 1; printf("ok\n"); if (x > 0) { Komendy status i diff nie wymagaja kontaktowania się z repozytorium. Katalog.svn zawiera kopie oryginalnych plików pobranych z repozytorium. => redukcja komunikacji kosztem większej zajętości dyskowej Subversion (19/45)

Wycofanie wprowadzonych zmian # svn revert main.c Reverted main.c Przywracana jest bazowa wersja pliku z katalogu.svn (bez kontaktu z repozytorium). Komenda revert może wycofywać operacje add i delete. Subversion (20/45)

Aktualizacja lokalnego katalogu # svn update U./main.c Updated to revision 9. Status pliku U A D R G C plik został zaktualizowany (pobrano zmiany wprowadzone do repozytorium). nowy plik został dodany do lokalnego katalogu roboczego. lokalny plik został usunięty. lokalny plik został zastapiony innym o takiej samej nazwie. zmiany z repozytorium zostały poprawnie zintegrowane z lokalnymi. zmiany z repozytorium spowodowały konflikt z lokalnymi zmianami. Subversion (21/45)

Konflikty Reakcja na konflikt 1. Sygnalizacja znakiem C. 2. Modyfikacja pliku źródłowego wskazujaca nakładajace się zmiany. 3. Utworzenie plików: plik.mine plik.roldrev plik.rnewrev Możliwe akcje oryginalny plik klienta sprzed operacji update. plik bazowy dla lokalnych modyfikacji. aktualna wersja pliku w repozytorium. 1. Ręczne usunięcie konfliktu poprzez edycję oryginalnego pliku. 2. Skopiowanie jednego z plików.mine,.roldrev,.rnewrev. 3. Wycofanie lokalnych zmian (svn revert). 4. Usunięcie plików tymczasowych: svn resolved. Subversion (22/45)

Przykład konfliktu Oryginalny plik Modyfikacje uż.1 Modyfikacje uż.2 ----------------------------------------------------------------------- #define ONE 1 #define ONE 1 #define ONE 1 #define TWO 2 #define TWO 2 #define TWO 2 #define MORE 3 #define THREE 3.---> #define OTHER 3 #define MORE 4 <---- Użytkownik 1 wprowadził zmiany do repozytorium. Użytkownik 2 wprowadził inne zmiany i aktualizuje katalog roboczy. #define ONE 1 #define TWO 2 <<<<<<<.mine <== początek konfliktu #define OTHER 3 <== wersja użytkownika 2 (moja) ======= #define THREE 3 <== wersja użytkownika 1 #define MORE 4 >>>>>>>.r8 <== koniec konfliktu Subversion (23/45)

Historia zmian # svn log ------------------------------------------------------------------------ r3 sobaniec 2004-03-08 11:15:53 +0100 (Mon, 08 Mar 2004) 1 line Algorytm iteracyjny. ------------------------------------------------------------------------ r2 kowalski 2004-03-04 14:38:09 +0100 (Thu, 04 Mar 2004) 1 line Procedura startowa. ------------------------------------------------------------------------ r1 sobaniec 2004-03-01 08:35:48 +0100 (Mon, 01 Mar 2004) 1 line Wersja początkowa. ------------------------------------------------------------------------ # svn log -r 5:8 # modyfikacje od 5 do 8 # svn log defs.h # modyfikacje dotyczące pliku defs.h # svn log -r 3 -v # szczegółowa lista plików zmieniona w wersji 3 ------------------------------------------------------------------------ r3 sobaniec 2004-03-08 11:15:53 +0100 (Mon, 08 Mar 2004) 1 line Changed paths: M /Proj1/main.c Subversion (24/45)

Historia zmian (cd) Komenda diff # svn diff -r 5 main.c # zmiany między wersją roboczą # a wersją 5 z repozytorium # svn diff -r 5:6 main.c # zmiany wprowadzone między wersją 5 i 6 # svn diff -r 5:6 svn://unixlab/proj2/main.c # obserwacja zmian bez katalogu roboczego Pobieranie starszych wersji # svn checkout -r 5... # svn update -r 5... # przejście do wersji 5 Subversion (25/45)

Inne komendy Wyświetlanie plików z repozytorium # svn cat -r 8 Makefile... Informacja o projekcie z katalogu roboczego # svn info Path:. URL: file:///var/svnroot/proj1 Repository UUID: 0ec7a80a-1dd5-0310-828f-8eb621ee5bc6 Revision: 9 Node Kind: directory Schedule: normal Last Changed Author: sobaniec Last Changed Rev: 9 Last Changed Date: 2004-03-16 22:53:24 +0100 (Tue, 16 Mar 2004) Subversion (26/45)

Inne komendy (cd) Lista plików w repozytorium # svn list # katalog roboczy Makefile main.c... # svn list file:///var/svnroot/proj2 # katalog z repozytorium index.html main.css Czyszczenie katalogu roboczego # svn cleanup Subversion (27/45)

Inne komendy (cd) Komenda blame (praise, annotate) Informacja o autorach zmian w poszczególnych liniach plików wraz z numerami wersji. # svn blame main.c 1 sobaniec #include <stdio.h> 24 kowalski #include <unistd.h> 1 sobaniec 1 sobaniec int main() { 24 kowalski int x; 12 nowak int y = 10; 24 kowalski x = getpid(); 10 kowalski printf("hello world\n"); 12 nowak printf("y=%d\n", y); 1 sobaniec } Subversion (28/45)

Właściwości (properties) Właściwości sa metadanymi Ustawienie właściwości # svn propset copyright (c) 2004 PUT II Makefile property copyright set on Makefile # svn propedit copyright Makefile Set new value for property copyright on Makefile Wyświetlenie właściwości # svn propget copyright Makefile (c) 2004 PUT II Status plików # svn status M main.c M Makefile <-- zmiana właściwości Subversion (29/45)

Właściwości (cd) Lista właściwości # svn proplist Makefile Properties on Makefile : copyright # svn proplist -v Makefile Properties on Makefile : copyright : (c) 2004 Sobaniec Usuwanie właściwości # svn propdel copyright Makefile property copyright deleted from Makefile. Uwaga: Właściwości sa wersjonowane i ich zmiany moga generować konflikty! Subversion (30/45)

Specjalne właściwości svn:executable odtwarzania prawa do wykonywania (Unix). svn:mime-type typ MIME danego pliku. Wszystkie typy MIME text/* sa traktowane jako pliki tekstowe (wykonywana jest operacja łaczenia zmian merge). svn:ignore lista wzorców plików, które maja być ignorowane użyteczne w przypadku katalogów (plik.cvsignore w CVS). svn:keywords lista identyfikatorów postaci $nazwa$ modyfikowanych podczas operacji commit. svn:eol-style sposób kodowania nowych linii: native, CR, LF, CRLF. Subversion (31/45)

Własność svn:keywords Identyfikatory $Date$ $Rev$ $Author$ $URL$ $Id$ data ostatniej modyfikacji. numer wersji repozytorium. autor ostatniej zmiany w repozytorium. adres URL dokumentu w repozytorium. skrócona wersja powyższych identyfikatorów. Przykład # svn propset svn:keywords Id Rev main.c # head -3 main.c /* * $Id: main.c 11 2004-03-18 10:01:24Z sobaniec $ */ Subversion (32/45)

Rozgałęzienia Motywacja 1.0 2.0 3.0 1.1 1.2 1.3 1.2.1 Utrzymywanie wielu równoległych wersji rozwijanego projektu. Seperacja prac o różnym satusie: rozwojowe, stabilizujace. Subversion (33/45)

Tworzenie rozgałęzienia Kopiowanie # svn copy svn://unixlab/proj svn://unixlab/proj-1.0-branch Tworzenie rozgałęzień jest operacja o niskim koszcie (zamiast kopiowania tworzone sa dowiazania). Rozgałęzienie jest kontynuacja poprzednich modyfikacji: istnieje możliwość pobierania dowolnie starszych wersji plików z gałęzi pobocznej. Subversion (34/45)

Praca z gałęzia poboczna Pobranie wersji pobocznej projektu # svn checkout svn://unixlab/proj-1.0-branch Przełaczanie między gałęziami # svn checkout svn://unixlab/proj # cd Proj # svn switch svn://unixlab/proj-1.0-branch Subversion (35/45)

Kopiowanie zmian między gałęziami Integracja zmian z gałęzi pobocznej # svn merge -r 8:10 svn://unixlab/proj-1.0-branch # svn commit -m "Integracja zmian 8:10 z gałęzi 1.0-branch" Komenda merge działa bardzo podobnie do komendy diff. Wycofywanie zmian # svn merge -r 10:8 main.c # svn merge -r HEAD:PREV main.c <= ostatnia zmiana Subversion (36/45)

Etykietowanie wersji Kopiowanie # svn copy. svn://unixlab/proj-1.0-release Kopiowanie bez katalogu roboczego # svn copy svn://unixlab/proj svn://unixlab/proj-1.0-release Nie ma różnicy między rozgałęzieniem, a etykieta zawsze kopiowanie. Konwencja nazewnicza katalogów + definicja praw dostępu. Subversion (37/45)

Skrypty Skrypty znajduja się w katalogu hooks w repozytorium. Skrypty start-commit wywoływany przed utworzeniem transakcji zgrubna weryfikacja uprawnień. Argumenty: ścieżka do repozytorium i nazwa użytkownika. pre-commit po utworzeniu transakcji, ale przed jej wykonaniem szczegółowa weryfikacja uprawnień bazujaca na nazwach plików i podkatalogów projektu. post-commit po zatwierdzeniu transakcji powiadomienie użytkowników o zmianach. Subversion (38/45)

Prawa dostępu do repozytorium Skrypt commit-access-control.pl + plik konfiguracyjny commit-access-control.cfg: [Dostęp do odczytu dla wszystkich] <= identyfikator reguły match =.* <= wyrażenie regularne access = read-only [Projekty Proj1 i Proj2] match = ^(Proj1 Proj2) access = read-write users = sobaniec [Dokumentacja projektu Proj1] match = ^Proj/Doc users = sobaniec kowalski access = read-write Subversion (39/45)

Kopia zapasowa repozytorium Kopia w formacie tekstowym # svnadmin dump /var/svnroot gzip -9 > kopia.gz Kopia binarna repozytorium # svnadmin hotcopy /var/svnroot /var/backup Kopia binarna jest zwykłym repozytorium gotowym do pracy. Subversion (40/45)

Migracja repozytorium Pobranie historii projektu # svnadmin dump /var/svnroot svndumpfilter include Proj > proj.svn Wczytanie archiwum # svnadmin load /var/svnroot < proj.svn Subversion (41/45)

Konfiguracja oprogramowania klienta Unix Lokalizacja plików konfiguracyjnych ustawienia globalne: /etc/subversion/ ustawienia lokalne: ~/.subversion/ Plik config [helpers] editor-cmd = vim [miscellany] log-encoding = iso-8859-2 enable-auto-props = yes [auto-props] *.sh = svn:executable *.bat = svn:eol-style=crlf *.c = svn:eol-style=native;svn:keywords=id Subversion (42/45)

Konfiguracja oprogramowania klienta Unix (cd) Ustawienia dotyczace sieci: plik servers [global] http-timeout = 30 [groups] inne = test.domain.pl --------------------. put = *.cs.put.poznan.pl ---. [put] <--------------------- http-proxy-host = proxy.cs.put.poznan.pl http-proxy-port = 80 http-proxy-username = sobaniec http-proxy-password = tajne http-timeout = 60 [inne] <----------------------------------... Subversion (43/45)

Konfiguracja oprogramowania klienta Unix (cd) Automatyczne uzupełnianie podkomend i przełaczników poleceń svn i svnadmin: bash# shopt -s extglob progcomp bash#. /usr/share/subversion/tools/client-side/bash completion Subversion (44/45)

Ważne adresy http://subversion.tigris.org Strona domowa projektu Subversion. http://svnbook.red-bean.com Version Control with Subversion ksiażka o Subversion. http://tortoisesvn.tigris.org/ TortoiseSVN klient Subversion dla Windows. http://www.cs.put.poznan.pl/csobaniec/papers/subversion.pdf Obecna prezentacja. http://www.cs.put.poznan.pl/csobaniec/papers/svn-refcard.pdf Subversion Quick Reference Card. Subversion (45/45)