Nowy system kontroli wersji oprogramowania. Jacek Prucia jacek.prucia@7bulls.com http://www.7bulls.com/

Podobne dokumenty
Subversion nowy system kontroli wersji oprogramowania.

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

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

Michał (plucho) Subversion Wykorzystanie i administracja repozytorium

SUBVERSION TOMASZ ŁUKASZUK

SVN sojusz, partnerstwo, współpraca

Systemy Kontroli Wersji

Programowanie I

CVS system kontroli wersji

Co zostanie wypisane na ekranie? (1)

Systemy zarządzania wersjami

Assembla.com zajęcia 1

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

GIT. System Kontroli wersji GIT. Rafał Kalinowski

Wprowadzenie do systemu wersjonowania svn

System kontroli wersji Git

Środowisko programisty. Środowisko programisty 1/35

Git rozproszony system kontroli wersji

System kontroli wersji SVN

Rozproszony system kontroli wersji GIT. Piotr Macuk

Jak zatrudnić słonie do replikacji baz PostgreSQL

git krótki przewodnik

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

Partnerzy: Laboratorium 15

KONFIGURACJA CVS MAREK GRZEŚ

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

Konfiguracja i administracja systemem kontroli wersji SVN

Microsoft Visual SourceSafe uproszczona instrukcja użytkowania

Ćwiczenia 9: Zarządzanie konfiguracją Zadania:

Konfiguracja serwera Apache jako serwera repozytorium kodu SVN

Konfiguracja i przygotowanie środowiska do współpracy z infrastrukturą PL-Grid

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

BACKUP BAZ DANYCH FIREBIRD

Zapoznanie się z konfiguracją i zarządzaniem serwerem Samba.

Programowanie zespołowe

Problemy techniczne SQL Server

GIT. Rozproszony system kontroli wersji

Problemy techniczne SQL Server

Serwery LDAP w środowisku produktów w Oracle

Narzędzia programistyczne - GIT

Bezpieczeństwo systemów informatycznych

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

1. System kontroli wersji Instalacja programu kontroli wersji CVS

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

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

Przygotowanie platformy projektowo-programowej

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

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

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

Open Source na Uniwersytecie Łódzkim

MentorGraphics ModelSim

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

Dokumentacja instalacyjna i konfiguracyjna Aplikacja ADR. Wersja dokumentu 1.0. Strona 1/9

Konfiguracja oprogramowania w systemach MS Windows dla kont z ograniczonymi uprawnieniami

System kontroli wersji git

Konfiguracja serwera DNS w systemie Windows Server 2008 /2008 R2

Subversion jest systemem kontroli wersji

CitiDirect Online Banking - portal CitiDirect EB

Jednym z najważniejszych zagadnień, z którym może się zetknąć twórca

1 Tworzenie własnego zaproszenia dla powłoki bash

Projekt Fstorage. Łukasz Podkalicki Bartosz Kropiewnicki

INSTRUKCJA OBSŁUGI KLIENTA POCZTY WWW

MAMP Mac + Apache + MySQL + PHP. Kraków 8 czerwca 2009, Adam Strzelecki,

Subversion - jak dziaªa

System. Instalacja bazy danych MySQL. Autor : Piotr Zielonka tel Piotrków Tryb., sierpień 2018r.

UP: Zarządzanie konfiguracją i zmianami (ang. Configuration and Change Management)

SZYBKI START. Tworzenie nowego połączenia w celu zaszyfrowania/odszyfrowania danych lub tekstu 2. Szyfrowanie/odszyfrowanie danych 4

onfiguracja serwera DNS w systemie Windows Server 2008 /2008 R2

WYKORZYSTANIE I ROZWÓJ WOLNEGO OPROGRAMOWANIA W WOJEWÓDZKIM WĘŹLE INFRASTRUKTURY INFORMACJI PRZESTRZENNEJ

INSTRUKCJA OBSŁUGI DLA SIECI

Podstawy konfiguracji środowiska graficznego. Umieszczamy kursor na pustym obszarze na pulpicie i naciskamy prawy guzik:

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

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

Projektowanie systemów baz danych

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

Wprowadzenie do systemów kontroli wersji

Wprowadzenie do systemów kontroli wersji

Continuous Integration

Archiwizacja baz MSSQL /BKP_SQL/ opis oprogramowania

Instrukcja instalacji aplikacji Plansoft.org

Budowa aplikacji webowej w oparciu o Maven2 oraz przykłady testów jednostkowych. Wykonał Marcin Gadamer

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Sieciowa instalacja Sekafi 3 SQL

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

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Techniki komputerowe w robotyce

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Organizacja i struktura projektu FreeBSD. Wojciech A. Koszek wkoszek@freebsd.org Częstochowa,

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

Informatyka I : Tworzenie projektu

Załącznik 1 instrukcje instalacji

Hurtownie danych - przegląd technologii

Konfiguracja współpracy urządzeń mobilnych (bonowników).

System zarządzania wersjami I Subversion

BACKUP BAZ DANYCH MS SQL

Git i platforma GitHub

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

Transkrypt:

Nowy system kontroli wersji oprogramowania Jacek Prucia jacek.prucia@7bulls.com http://www.7bulls.com/

Wprowadzenie System kontroli wersji w ogólności Antidotum na bałagan: *.old, *.old~, *.backup Największa popularność w systemie Linux: CVS (Concurrent Versions System) Przodkowie CVS a: RCS, SCCS Konkurencja CVS a: BitKeeper, Aegis Szerokie zastosowanie: repozytorium SourceForge.net 49.3 GB/16.04.2001 repozytorium RedHat ok. 7 GB Cichy monopol CVS

CVS upierdliwy dziadek CVS bardzo stary program (początki 1986 rok) Architektura klient serwer, a CVS Bezpieczeństwo (a raczej jego brak ;)) CVS development = dead horse Nieoficjalne łaty: cvs-nserver, cvsauth (sserver), cvsd, oraz cvs bookmarks patch Arogancja i lekcewaga (m.in. Greg A. Woods) lekarstwo licencja GPL. Problem na szerszą skalę (m.in. Accelerating Apache Project, Samba NTG)

Subversion światełko w tunelu Organizacja Tigris (powołana przez collab.net) Liczne projekty towarzyszące (m.in. ArgoUML) Licencja: Apache/BSD style Aktualny etap: Milestone 2 Milestone 3 = self-hosting (obecnie repozytorium CVS) Kolejny (po Apache 2.0) program korzystający z apr (Apache Portable Run-time)

Subversion ludzie Ben Collins-Sussman Project Owner Karl Fogel autor książki: Open Source Development with CVS http://cvsbook.red-bean.com Greg Stein członek Apache Software Foundation, autor mod dav a dla serwera Apache Subversion architektura

Subversion architektura Podstawa libsvn client (abstrakty commit(), update()) Operacje (commit, update) wymagają zarówno dostępu do kopi roboczej, jak i do repozytorium Kopia robocza (wc) biblioteka libsvn wc Dostęp do repozytorium (ra) biblioteki libsvn ra local, libsvn ra dav Nowa metoda dostępu do repozytorium = nowa biblioteka libsvn ra?

Subversion repozytorium Repozytorium: pseudo system plików oparty o BerkeleyDB v3.x Benefity: wydajność, właściwości (a la attr w XFS) Wady: nie można grzebać ręcznie w repozytorium, problemy z licencją (lamenty Eric S. Raymond a) Tworzenie repozytorium polecenie: svnadmin create /var/repos Pozostałe opcje svnadmin badanie wersji plików w repozytorium (youngest, lstxn, lsrevs)

Subversion serwer Serwer Subversion = Apache 2.0 + mod dav + mod dav svn Zalety stosowania serwera Apache 2.0: bezpieczne środowisko, jednolity system kontroli dostępu, różne mechanizmy za darmo (m.in. SSL/TLS) Architektura zezwala na inne rozwiązania (np.: svnd + libsvn ra svnd) Protokół WebDAV/DeltaV - nieco inny HTTP (inne metody np.: MKCOL, PROPFIND, PROPPATCH) Subversion obsługuje WebDAV/DeltaV poprzez bibliotekę neon (http://www.webdav.org/neon/).

Subversion mod dav svn Kompilacja: --with-apache, lub --with-apxs Przykład poprawnego wpisu: <Location /repozytorium> DAV svn SVNPath /var/repos </Location> Duża dowolność w lokalizacji repozytorium, brak standaryzacji Klient svn nie wspiera $CVSROOT/$SVNROOT ręczne wpisywanie lokalizacji do repozytorium

Zmiana nazwy pliku Subversion Features... cvs checkout foo.c -r 12.4 O jaki plik chodzi? wersji 12.4 bieżącego pliku foo.c (który kiedyś nazywał się bar.c) wersji 12.4 pliku który w tej wersji nosił nazwę foo.c (a teraz nie istnieje bo został usunięty w wersji np.: 10.7) Jeszcze nie zaimplementowane...

Subversion Features... Katalogi i rewizje cvs commit = zmiana wersji pliku svn commit = zmiana wersji *katalogu* Jeżeli cały katalog będzie w wersji 3, programista dokona poprawek w jednym pliku, a następnie wykona commit, to po wykonaniu checkout/update wszystkie pliki (a nie tylko poprawiany) w katalogu będą w wersji 4.

Właściwości Subversion Features... Właściwości (properties lists) key = value Wszechstronne zastosowanie (notatki własne, system Subversion) keyword expansion, mime-type = properties Dziedziczenie właściwości Manipulacja: svn propset typ dokumentacja README svn propget typ README svn proplist README

Text vs Binary cvs svn Subversion Features... default = text, chyba że -kb default = text, chyba że mime-type (właściwość) keyword substitution oraz line conversion scheme realizowane jako filtry, niezależne od sposobu transmisji text/binary keyword substitution oraz line conversion scheme są domyślnie wyłączone (nie są rozwijane słowa $Id$, nie ma zamiany CR na CRLF, itd.) Domyślne składowanie: Unix owy CR

Logi Subversion Features... Domyślne zachowanie pusty log message Modyfikacja: per projekt, lub -m "log message" Eleganckie rozwikłanie konfliktów cvs svn znaczniki konfliktu w oryginalnym pliku plik *.rej (np.: foo.c.8734xnis2989.rej)

Merge i przodkowie Subversion Features... Przodkowie foo.c w wersji 5 to prawdopodobnie: {foo.c:1, foo.c:2, foo.c:3, foo.c:4, foo.c:5}...lub prościej: {foo.c:1-5} Przodkowie merge a mogą wyglądać tak: {trunk/foo.c:1-8, branch/foo.c:3-7}

Subversion bezpieczeństwo Poziom 1: autoryzacja na podstawie user + pass (Apache + mod dav + ew. mod ssl) Poziom 2: czy użytkownik X może wykonać akcję Y na obiekcie Z? (mod svn dav + plugin security) Plik svn security mapowanie svn user user/protocol/domain definicja ról: rola lista dozwolonych operacji (commit, update, itp.) mapowanie ról na konkretnych svn user wobec podkatalogów repozytorium Katalog plugin security jest pusty...

Subversion katalog roboczy Katalog roboczy svn = SVN (analogicznie do cvs) Pliki: format, repository Lepiej przemyślany format pliku entries (XML) Pliki: dir-props oraz dir-props-base Katalogi: text-base oraz props, props-base Plik lock, oraz README (przestroga) Plik log (commit = transakcja) Katalog wcprops

Subversion Delta Delta: sposób opisu zmian (swojego rodzaju łata) text delta: <text-delta>dane</text-delta> property delta <property-delta> <set name= typ >dokumentacja</set> <delete name= test /> </property-delta>

tree delta: Subversion Delta <tree-delta> <replace name= dir1 > <directory> <tree-delta> <replace name= file1 > <file>text-delta</file> </replace> <delete name= file2 /> <add name= file3 > <file ancestor= /dir1/file2 /> </add> </tree-delta> </directory> </replace> </tree-delta>

tree delta: Subversion Delta <tree-delta>... <file> <text-delta-ref id= 123 / > </file>... </tree-delta> <text-delta id= 123 >dane</text-delta>

Garść linków... Subversion, http://subversion.tigris.org CVS, http://www.cvshome.org BitKeeper, http://www.bitkeeper.com Aegis, http://www.canb.auug.org.au/~millerp/aegis/ cvs-nserver, http://alexm.here.ru/cvs-nserver/ cvsauth, http://cvsauth.sourceforge.net/ cvsd, http://www.oinkzwurgl.org/software/cvsd/ CVS bookmarks patch, http://cvsbookmarks.sf.net CVS list patch, (w trakcie opracowywania...)

Podziękowania Firma 7bulls.com S.A. za wsparcie (sprzęt, czas), Martin Vogt (autor cvsauth) za informacje o projekcie Subversion, Programiści Subversion za informacje na temat bieżącego stanu projektu, Sjoerd Langkemper za pomoc w opracowywaniu cvsbookmarks, Juliusz Brzostek za prace włożone w cvs list patch, Żółw za to, że z wrodzonym sobie wdziękiem rozłożył w zaledwie 15 minut spore repozytorium CVS :)) Moja kobieta Dorota za anielską cierpliwość dla mojej pasji ;))

Pytania?