Co to jest Subversion?

Transkrypt

Co to jest Subversion?
Subversion
System wersjonowania projektów
C EZARY S OBANIEC
mailto:[email protected]
Instytut Informatyki
Politechnika Poznańska
$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,
✔ zastepuje
˛
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
Instytut Informatyki
Politechnika Poznańska
Subversion (1/45)
c 2004 by Cezary Sobaniec
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˛ liczbe˛ własności (klucz–wartość), których wartości podlegaja˛ wersjonowaniu.
Różne metody dostepu
˛
• Lokalny system plików • wbudowany prosty serwer • moduł dla serwera Apache komunikujacy
˛ sie˛ zgodnie z protokołem WebDAV • tunelowanie SSH.
Instytut Informatyki
Politechnika Poznańska
Subversion (2/45)
c 2004 by Cezary Sobaniec
Główne cechy Subversion (cd)
Jednolite przetwarzanie plików
Zmiany w plikach sa˛ przechowywane w postaci skompresowanej w taki
sam sposób, bez wzgledu
˛
na ich typ (pliki tekstowe, binarne).
Efektywna komunikacja klient–serwer
Klient i serwer wysyłaja˛ zawsze tylko zmiany pomiedzy
˛
wersjami plików
(w CVS tylko serwer => klient).
Efektywne tworzenie gałezi
˛ pobocznych i etykietowanie
Koszt utworzenia gałezi
˛ 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.
Instytut Informatyki
Politechnika Poznańska
Subversion (3/45)
c 2004 by Cezary Sobaniec
Narzedzia
˛
Subversion
Klient
svn
klient Subversion umożliwiajacy
˛ wprowadzanie zmian i pobieranie informacji z repozytorium.
svnversion
narz˛edzie wspomagajace
˛ do raportowania numerów wersji składowych katalogu roboczego.
Serwer
svnlook
narz˛edzie do pobierania różnych informacji z repozytorium.
svnadmin
program do zarzadzania
˛
repozytorium (tworzenie, backup, itp.).
svnserve
samodzielny serwer zdalnego dostepu
˛ do repozytorium.
mod dav syn moduł serwera Apache do zdalnego dostepu
˛
do repozytorium.
Instytut Informatyki
Politechnika Poznańska
Subversion (4/45)
c 2004 by Cezary Sobaniec
Podstawowe pojecia
˛
Repozytorium
Centralny, wersjonowany system plików. Dane moga˛ być pobierane przez dowolna˛ liczbe˛ klientów. Zapis do repozytorium umożliwia dostep
˛ do nowych danych innym klientom.
Repozytorium
Instytut Informatyki
Politechnika Poznańska
zapis
odczyt
Użytkownik 1
Użytkownik 2
odczyt
Użytkownik 3
Subversion (5/45)
c 2004 by Cezary Sobaniec
Model wersjonowania
a)
b)
A
odczyt
odczyt
A
c)
A
A
A’
d)
A’
A’’
zapis
A’
Instytut Informatyki
Politechnika Poznańska
A’’
zapis
A’’
A’
A’’
Subversion (6/45)
c 2004 by Cezary Sobaniec
Współdzielenie plików
✘ Nadpisywanie zmian wprowadzonych przez innych użytkowników.
Blokowanie dostepu
˛
do pliku (podejście pesymistyczne)
Wiele blokad do odczytu, jedna blokada do zapisu.
✘ Problem nie zdjetych
˛
blokad.
✘ Nadmiarowa synchronizacja: edycja różnych fragmentów pliku tekstowego.
✘ Współbieżne, niekompatybilne zmiany w plikach zależnych od siebie.
Instytut Informatyki
Politechnika Poznańska
Subversion (7/45)
c 2004 by Cezary Sobaniec
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.
Instytut Informatyki
Politechnika Poznańska
Subversion (8/45)
c 2004 by Cezary Sobaniec
Integracja zmian
a)
b)
A
odczyt
odczyt
A
c)
A
A
A’
d)
A’
A’’
A’
zapis
zapis
A’
Instytut Informatyki
Politechnika Poznańska
A’’
A’
A’’
Subversion (9/45)
c 2004 by Cezary Sobaniec
Integracja zmian (cd)
e)
f)
A’
A’
odczyt
A’
g)
A’ A’’
h)
A*
zapis
A’
Instytut Informatyki
Politechnika Poznańska
A’
A*
A*
A*
odczyt
A*
A*
Subversion (10/45)
c 2004 by Cezary Sobaniec
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).
Instytut Informatyki
Politechnika Poznańska
Subversion (11/45)
c 2004 by Cezary Sobaniec
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
Instytut Informatyki
Politechnika Poznańska
Subversion (12/45)
c 2004 by Cezary Sobaniec
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/usuniecie
˛
plików
# svn add dane.c
# svn delete const.h
7. Zmiana nazwy/lokalizacji pliku/katalogu
# svn move dane.c data.c
Instytut Informatyki
Politechnika Poznańska
Subversion (13/45)
c 2004 by Cezary Sobaniec
Adresy URL repozytoriów
file://
bezpośredni dostep
˛ do lokalnego repozytorium.
http://
dostep
˛ za pośrednictwem protokołu WebDAV.
https://
podobnie jak http://, ale komunikacja jest kodowana.
svn://
dostep
˛ za pośrednictwem protokołu serwera svnserve.
svn+ssh://
podobnie jak file:///, ale poprzez tunel SSH.
Przykład
svn+ssh://unixlab/var/svnroot/TestProject
^^^^^^^^^^^ ===========
fizyczny
nazwa
katalog
projektu
na serwerze
Instytut Informatyki
Politechnika Poznańska
Subversion (14/45)
c 2004 by Cezary Sobaniec
Wersje repozytorium
0
1
2
3
4
====================================================================================
/
/
|
‘--Proj1
|--Makefile
|--main.c
‘--defs.h
/
|
|--Proj1
|
|--Makefile
|
|--main.c
|
‘--defs.h
|
‘--Proj2
‘--index.html
/
|
|--Proj1
|
|--Makefile
|
|--main.c
|
‘--defs.h
|
‘--Proj2
|--index.html
‘--main.css
/
|
|--Proj1
|
|--Makefile
|
|--main.c*
|
‘--defs.h
|
‘--Proj2
|--index.html
‘--main.css
====================================================================================
import Proj1
Instytut Informatyki
Politechnika Poznańska
import Proj2
add main.css
update main.c
Subversion (15/45)
c 2004 by Cezary Sobaniec
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
Instytut Informatyki
Politechnika Poznańska
Subversion (16/45)
c 2004 by Cezary Sobaniec
Nowy projekt (cd)
Utworzenie projektu i konwersja do katalogu roboczego
#
#
#
#
#
A
A
#
cd ..
svn mkdir file:///var/svnroot/Proj1
svn checkout file:///var/svnroot/Proj1
cd Proj1
svn add Makefile main.c
Makefile
main.c
svn commit ...
Instytut Informatyki
Politechnika Poznańska
Subversion (17/45)
c 2004 by Cezary Sobaniec
Weryfikacja wprowadzonych zmian
# svn status
M
Makefile
MM
main.c
?
defs.h
Status pliku
A
plik bedzie
˛
dodany do repozytorium.
D
plik bedzie
˛
usuniety
˛ z repozytorium.
M
plik zmodyfikowany lokalnie.
C
konflikt pomiedzy
˛
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).
Instytut Informatyki
Politechnika Poznańska
Subversion (18/45)
c 2004 by Cezary Sobaniec
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 sie˛ z repozytorium.
Katalog .svn zawiera kopie oryginalnych plików pobranych z repozytorium.
=> redukcja komunikacji kosztem wiekszej
˛
zajetości
˛
dyskowej
Instytut Informatyki
Politechnika Poznańska
Subversion (19/45)
c 2004 by Cezary Sobaniec
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.
Instytut Informatyki
Politechnika Poznańska
Subversion (20/45)
c 2004 by Cezary Sobaniec
Aktualizacja lokalnego katalogu
# svn update
U ./main.c
Updated to revision 9.
Status pliku
U
plik został zaktualizowany (pobrano zmiany wprowadzone do repozytorium).
A
nowy plik został dodany do lokalnego katalogu roboczego.
D
lokalny plik został usuniety.
˛
R
lokalny plik został zastapiony
˛
innym o takiej samej nazwie.
G
zmiany z repozytorium zostały poprawnie zintegrowane z lokalnymi.
C
zmiany z repozytorium spowodowały konflikt z lokalnymi zmianami.
Instytut Informatyki
Politechnika Poznańska
Subversion (21/45)
c 2004 by Cezary Sobaniec
Konflikty
Reakcja na konflikt
1. Sygnalizacja znakiem C.
2. Modyfikacja pliku źródłowego wskazujaca
˛ nakładajace
˛ sie˛ zmiany.
3. Utworzenie plików:
plik.mine
oryginalny plik klienta sprzed operacji update.
plik.rOLDREV
plik bazowy dla lokalnych modyfikacji.
plik.rNEWREV
aktualna wersja pliku w repozytorium.
Możliwe akcje
1. Reczne
˛
usuniecie
˛
konfliktu poprzez edycje˛ oryginalnego pliku.
2. Skopiowanie jednego z plików .mine, .rOLDREV, .rNEWREV.
3. Wycofanie lokalnych zmian (svn revert).
4. Usuniecie
˛
plików tymczasowych: svn resolved.
Instytut Informatyki
Politechnika Poznańska
Subversion (22/45)
c 2004 by Cezary Sobaniec
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
#define
<<<<<<<
#define
=======
#define
#define
>>>>>>>
ONE
1
TWO
2
.mine
OTHER 3
THREE 3
MORE 4
.r8
Instytut Informatyki
Politechnika Poznańska
<== poczatek
˛
konfliktu
<== wersja użytkownika 2 (moja)
<== wersja użytkownika 1
<== koniec konfliktu
Subversion (23/45)
c 2004 by Cezary Sobaniec
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 poczatkowa.
˛
-----------------------------------------------------------------------# svn log -r 5:8
# modyfikacje od 5 do 8
# svn log defs.h
# modyfikacje dotyczace
˛
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
Instytut Informatyki
Politechnika Poznańska
Subversion (24/45)
c 2004 by Cezary Sobaniec
Historia zmian (cd)
Komenda diff
# svn diff -r 5 main.c
# zmiany mi˛
edzy wersja˛ robocza˛
# a wersja˛ 5 z repozytorium
# svn diff -r 5:6 main.c
# zmiany wprowadzone mi˛
edzy wersja˛ 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 ...
Instytut Informatyki
Politechnika Poznańska
# przejście do wersji 5
Subversion (25/45)
c 2004 by Cezary Sobaniec
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)
Instytut Informatyki
Politechnika Poznańska
Subversion (26/45)
c 2004 by Cezary Sobaniec
Inne komendy (cd)
Lista plików w repozytorium
# svn list
Makefile
main.c
...
# svn list file:///var/svnroot/Proj2
index.html
main.css
# katalog roboczy
# katalog z repozytorium
Czyszczenie katalogu roboczego
# svn cleanup
Instytut Informatyki
Politechnika Poznańska
Subversion (27/45)
c 2004 by Cezary Sobaniec
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 }
Instytut Informatyki
Politechnika Poznańska
Subversion (28/45)
c 2004 by Cezary Sobaniec
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
Instytut Informatyki
Politechnika Poznańska
<-- zmiana właściwości
Subversion (29/45)
c 2004 by Cezary Sobaniec
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!
Instytut Informatyki
Politechnika Poznańska
Subversion (30/45)
c 2004 by Cezary Sobaniec
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.
Instytut Informatyki
Politechnika Poznańska
Subversion (31/45)
c 2004 by Cezary Sobaniec
Własność svn:keywords
Identyfikatory
$Date$
data ostatniej modyfikacji.
$Rev$
numer wersji repozytorium.
$Author$
autor ostatniej zmiany w repozytorium.
$URL$
adres URL dokumentu w repozytorium.
$Id$
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 $
*/
Instytut Informatyki
Politechnika Poznańska
Subversion (32/45)
c 2004 by Cezary Sobaniec
Rozgałezienia
˛
Motywacja
1.0
2.0
1.1
1.2
3.0
1.3
1.2.1
• Utrzymywanie wielu równoległych wersji rozwijanego projektu.
• Seperacja prac o różnym satusie: rozwojowe, stabilizujace.
˛
Instytut Informatyki
Politechnika Poznańska
Subversion (33/45)
c 2004 by Cezary Sobaniec
Tworzenie rozgałezienia
˛
Kopiowanie
# svn copy
svn://unixlab/Proj
svn://unixlab/Proj-1.0-branch
✔ Tworzenie rozgałezie
˛ ń jest operacja˛ o niskim koszcie (zamiast kopiowania
tworzone sa˛ dowiazania).
˛
✔ Rozgałezienie
˛
jest kontynuacja˛ poprzednich modyfikacji: istnieje możliwość
pobierania dowolnie starszych wersji plików z gałezi
˛ pobocznej.
Instytut Informatyki
Politechnika Poznańska
Subversion (34/45)
c 2004 by Cezary Sobaniec
Praca z gałezi
˛ a˛ poboczna˛
Pobranie wersji pobocznej projektu
# svn checkout svn://unixlab/Proj-1.0-branch
Przełaczanie
˛
miedzy
˛
gałeziami
˛
# svn checkout svn://unixlab/Proj
# cd Proj
# svn switch svn://unixlab/Proj-1.0-branch
Instytut Informatyki
Politechnika Poznańska
Subversion (35/45)
c 2004 by Cezary Sobaniec
Kopiowanie zmian miedzy
˛
gałeziami
˛
Integracja zmian z gałezi
˛ pobocznej
# svn merge -r 8:10 svn://unixlab/Proj-1.0-branch
# svn commit -m "Integracja zmian 8:10 z gał˛
ezi 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
Instytut Informatyki
Politechnika Poznańska
<= ostatnia zmiana
Subversion (36/45)
c 2004 by Cezary Sobaniec
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 miedzy
˛
rozgałezieniem,
˛
a etykieta˛ — zawsze kopiowanie.
• Konwencja nazewnicza katalogów + definicja praw dostepu.
˛
Instytut Informatyki
Politechnika Poznańska
Subversion (37/45)
c 2004 by Cezary Sobaniec
Skrypty
Skrypty znajduja˛ sie˛ 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.
Instytut Informatyki
Politechnika Poznańska
Subversion (38/45)
c 2004 by Cezary Sobaniec
Prawa dostepu
˛
do repozytorium
Skrypt commit-access-control.pl
+ plik konfiguracyjny commit-access-control.cfg:
[Dost˛
ep do odczytu dla wszystkich]
match = .*
access = read-only
<= identyfikator reguły
<= wyrażenie regularne
[Projekty Proj1 i Proj2]
match = ^(Proj1|Proj2)
access = read-write
users = sobaniec
[Dokumentacja projektu Proj1]
match = ^Proj/Doc
users = sobaniec kowalski
access = read-write
Instytut Informatyki
Politechnika Poznańska
Subversion (39/45)
c 2004 by Cezary Sobaniec
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.
Instytut Informatyki
Politechnika Poznańska
Subversion (40/45)
c 2004 by Cezary Sobaniec
Migracja repozytorium
Pobranie historii projektu
# svnadmin dump /var/svnroot | svndumpfilter include Proj > proj.svn
Wczytanie archiwum
# svnadmin load /var/svnroot < proj.svn
Instytut Informatyki
Politechnika Poznańska
Subversion (41/45)
c 2004 by Cezary Sobaniec
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
Instytut Informatyki
Politechnika Poznańska
Subversion (42/45)
c 2004 by Cezary Sobaniec
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] <----------------------------------’
...
Instytut Informatyki
Politechnika Poznańska
Subversion (43/45)
c 2004 by Cezary Sobaniec
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
Instytut Informatyki
Politechnika Poznańska
Subversion (44/45)
c 2004 by Cezary Sobaniec
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.
Instytut Informatyki
Politechnika Poznańska
Subversion (45/45)
c 2004 by Cezary Sobaniec

Podobne dokumenty