Wprowadzenie do systemów kontroli wersji

Podobne dokumenty
Wprowadzenie do systemów kontroli wersji

Systemy Kontroli Wersji

CVS system kontroli wersji

Co zostanie wypisane na ekranie? (1)

Programowanie I

Unix: kompilator C i narzȩdzia pomocnicze

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

System kontroli wersji Git

Systemy zarządzania wersjami

Git rozproszony system kontroli wersji

Środowisko programisty. Środowisko programisty 1/35

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

GIT. System Kontroli wersji GIT. Rafał Kalinowski

SUBVERSION TOMASZ ŁUKASZUK

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

Funkcje systemu Unix

Wprowadzenie do systemów kontroli wersji RCS i CVS

Nowy system kontroli wersji oprogramowania. Jacek Prucia

GIT. Rozproszony system kontroli wersji

KONFIGURACJA CVS MAREK GRZEŚ

Program do wagi samochodowej

Partnerzy: Laboratorium 15

Narzędzia programistyczne - GIT

System kontroli wersji SVN

git krótki przewodnik

1. System kontroli wersji Instalacja programu kontroli wersji CVS

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

Assembla.com zajęcia 1

Informatyka I. Wyk lad I. Wprowadzenie. Robert Muszyński Instytut Cybernetyki Technicznej Politechnika Wroc lawska

Archiwizacja baz MSSQL /BKP_SQL/ opis oprogramowania

Użytkownicy I. Użytkownik. Głównym celem istnienia użytkowników i grup w systemie jest utrzymanie porządku i separacja uprawnień.

Konfiguracja i administracja systemem kontroli wersji SVN

Michał (plucho) Subversion Wykorzystanie i administracja repozytorium

KATEGORIA OBSZAR WIEDZY

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

ArtPlayer oprogramowanie do odtwarzania plików video sterowane Artnet/DMX V1.0.1

Systemy kontroli wersji

Program do wagi samochodowej

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

Wybrane zmiany wprowadzone w pakiecie

Subversion - jak dziaªa

Opis zmian w wersji aplikacji Cyfrowe Repozytorium Dokumentów

Win Admin Replikator Instrukcja Obsługi

Posiada (TAK / NIE. Zrzut ekranu. Opis funkcji

Kurs systemu Unix wykład wstępny. Kurs systemu Unix 1

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Kurs ECDL Moduł 3. Nagłówek i stopka Microsoft Office Word Autor: Piotr Dębowski. piotr.debowski@konto.pl

Baza numerów Wersja 1.1

WYPOŻYCZALNIA BY CTI INSTRUKCJA

Mechanizmy lokalnej kontroli dostępu (ACL)

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

2 INSTALACJA OPROGRAMOWANIA. 3 3 GŁÓWNE OKNO PROGRAMU 3 4 MODUŁ OBSŁUGI ARCHIWUM 7

Sylabus Moduł 4: Grafika menedżerska i prezentacyjna

EXSO-CORE - specyfikacja

Instrukcja aktualizacji programu Integra 7

1. Logowanie się do panelu Adminitracyjnego

Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa

Operacje na plikach. Organizacja systemu plików. Typy plików. Struktury plików. Pliki indeksowane. Struktura wewn etrzna

Drzewa AVL definicje

Drzewa podstawowe poj

O autorze 11 O recenzentach 13 Przedmowa 15

Musesort. Przeczytaj szczegóły pliku. Wyświetla okno ze szczegółami pobranymi z internetu wybranego pliku audio lub video

Git, Bitbucket, IntelliJ IDEA

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

1 Tworzenie własnego zaproszenia dla powłoki bash

Ćwiczenia 9: Zarządzanie konfiguracją Zadania:

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

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

JPK Jednolity Plik Kontrolny

Konfiguracja konta pocztowego w Thunderbird

Zarządzanie projektami informatycznymi

Lista zgłoszeń zrealizowanych w uaktualnieniach Hot Fix w wersji

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

Sylabus Moduł 2: Przetwarzanie tekstów

WellCommerce Poradnik: CRM

Nowa Netia administrator firmy Nagrywanie połączeń-zarządzanie

JPK Jednolity Plik Kontrolny

OPTIMA PC v Program konfiguracyjny dla cyfrowych paneli domofonowy serii OPTIMA ELFON. Instrukcja obsługi. Rev 1

INSTRUKCJA UŻYTKOWNIKA Generowanie Jednolitego Pliku Kontrolnego (JPK) ISO 9001:2008 Dokument: Wydanie: 1 Waga: 90

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

Instrukcja do programu Przypominacz 1.5

Zasady programowania Dokumentacja

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

Monitorowanie i zarządzanie urządzeniami sieciowymi przy pomocy narzędzi Net-SNMP

Użycie pakietów instalacyjnych.msi w oprogramowaniu WYWIAD Plus

Projekty Zaliczeniowe Laboratorium Sieci Komputerowych

PAMIĘĆ OPERACYJNA...107

Kernel Kompilacja jądra

NDPHS Database. Instrukcje dla użytkowników. Wersja 1.0

SysLoger. Instrukcja obsługi. maj 2018 dla wersji aplikacji (wersja dokumentu 2.5)

Functionalization. Jeszcze o funkcjach i strukturze projektu. Marcin Makowski. 3 grudnia Zak lad Chemii Teoretycznej UJ

Interfejs GSM/GPRS LB-431

KATEGORIA OBSZAR WIEDZY

Interfejs GSM/GPRS LB-431

Uruchomienie nowego kontekstu aplikacji

KS-ZSA. Mechanizm centralnego zarządzania rolami

Rozdzia l 3. Laboratorium 3. danych zawierajac

ep Podstawy j Wst ezyka Tcl zaawansowany GUI-Tk Zastosowania Tcl/Tk Ireneusz So lczyk 26 kwietnia 2006

us lugi katalogowe? Czym różni si e serwer katalogowy od serwera bazy danych:

System imed24 Instrukcja Moduł Analizy i raporty

Transkrypt:

Wprowadzenie do systemów kontroli wersji Witold Paluszyński Katedra Cybernetyki i Robotyki Politechnika Wroc lawska http://www.kcir.pwr.edu.pl/~witold/ 2016 Ten utwór jest dostepny na licencji Creative Commons Uznanie autorstwa- Na tych samych warunkach 3.0 Unported Utwór udostepniany na licencji Creative Commons: uznanie autorstwa, na tych samych warunkach. Udziela sie zezwolenia do kopiowania, rozpowszechniania i/lub modyfikacji treści utworu zgodnie z zasadami w/w licencji opublikowanej przez Creative Commons. Licencja wymaga podania oryginalnego autora utworu, a dystrybucja materia lów pochodnych może odbywać sie tylko na tych samych warunkach (nie można zastrzec, w jakikolwiek sposób ograniczyć, ani rozszerzyć praw do nich). Pojecia wystepuj ace w systemach kontroli wersji Delta zbiór zmian pewnej wersji modu lu Branch rozwidlajaca sie ga l aź wersji Trunk ga laźbez rodzica, czesto nowawersja Tag nazwa nadana pewnej wersji Fork Commit Merge Repository Systemy kontroli wersji pojecia 3 Systemy kontroli wersji pojecia 4 SCCS: delty Protoplasta wszystkich systemów kontroli wersji jest SCCS (Source Code Control System) wymyślony przez Marka Rochkinda w 1972 roku i poczatkowo zaimplementowany w jezyku Snobol4 w systemie IBM/370. Uniksowa implementacja napisana w C zosta la opisana w publikacji w IEEE Trans. on Software Engineering Vol. 1 No. 4 w roku 1975. Idea na której opiera sie ten system wykorzystuje fakt, że wiekszość zmian w kodach źród lowych jest ma la w porównaniu z ca lym kodem, zatem każda zmiane można pamietać w postaci tzw. delty. Pamietanie delt kolejnych rewizji pozwala zarówno otrzymać bieżac a wersje kodu (pliku), jak i każdej wersji pośredniej. Teoretycznie wiec system nie pamieta ostatniej wersji pliku tylko odtwarza ja z lańcucha delt. Jednak pojecie delt stanowi lo jedynie abstrakcyjna perspektywe. W rzeczywistości implementacja SCCS wykorzystywa la tylko dwie operacje: dodawania i usuwania ca lych wierszy. SCCS: wydania i poziomy W SCCS wprowadzono pojecie wydania (release). Kolejne wersje w ramach wydania 1 nazywa ly sie poziomami (levels): 1.1, 1.2, 1.3, itp. Wraz z wprowadzeniem kolejnej delty programista móg l zadeklarować nowe wydanie, i wtedy kolejne wersje nazywa ly sie: 2.1, 2.2, itp. Po zainicjowaniu kolejnego wydania, na przyk lad 2.2 po ostatnim 1.4 można kontynuować modyfikacje g lównej wersji modu lu źród lowego (2.2 2.3), jak również wprowadzać poprawki do wydania 1 (1.4 1.5). SCCS umożliwia l również wprowadzanie delt warunkowych, które by ly uwzgledniane lub nie przy generacji żadanej wersji. Systemy kontroli wersji SCCS 5 Systemy kontroli wersji SCCS 6

SCCS: identyfikacja i dokumentacja SCCS zawiera l prosty schemat identyfikacji wersji polegajacy na rozpoznawaniu s lów kluczowych i zastepowaniu ich odpowiednimi wartościami identyfikujacymi wersje modu lu źród lowego. Programista musia l sam zadbać, aby taki ciag znaków znalaz l sie w module binarnym, aby umożliwić jego identyfikacje: s lowo kluczowe %R% %L% %I% %D% znaczenie numer wydania numer poziomu numer wersji (%R%.%L%) data YY/MM/DD (bez godziny) W praktyce stosuje sie magiczny string o nazwie sccsid rozpoznawany w modu lach binarnych po sekwencji znaków @(#) np. przez program what: static char sccsid[] = "@(#)mod.c %I %D"; SCCS automatycznie rejestrowa l date (i czas) oraz programiste tworzacego delte, oraz powód jej wprowadzenia (wymagany). SCCS: tryby dostepu # pobierz ostatnia wersje modulu modx do pliku modx.a get modx # pobierz ostatnia wersje wydania 1 get modx -r1 # pobierz konkretne wydanie i poziom z uwzglednieniem opcji X get modx -r3.1 -ox # pobierz konkretna wersje maksymalnie do lutego 1975 get modx -r3.4 -c7502 # pobierz ostatni poziom wydania 2 i zablokuj do edycji get modx -r2 -e # utworz delte porownujac zablokowana i biezaca wersje modulu delta modx Systemy kontroli wersji SCCS 7 Systemy kontroli wersji SCCS 8 SCCS: aspekty praktyczne SCCS jest starym systemem ze spora grupa hardcorowych zwolenników, którzy nie pozwalaja mu zginać i gotowi sa walczyć o jego dobre imie (g lównie z jego nastepc a/konkurentem RCS). SCCS oblicza i pamieta sumy kontrolne w plikach co z jednej strony zapobiega korupcji, ale z drugiej utrudnia manipulacje na plikach zwyk lymi narzedziami. SCCS domyślnie utrzymuje pliki historii w podkatalogu SCCS bieżacego katalogu projektu (ten podkatalog sam domyślnie tworzy w razie potrzeby). SCCS przetrwa l w postaci kilku nowych i utrzymywanych na bieżaco wersji: wersji komercyjnej na platformach Unix, wersji opensource, wersji Gnu (CSSC). Format pliku historii SCCS pozosta l niezmieniony od v4 z 1977r. SCCSv4 jest standardem POSIX systemów Uniksowych, cokolwiek to znaczy. Pliki kontrolne SCCS wykorzystuja przedrostki (np. g lówny plik historii modu lu mod.c nazywa sie s,mod.c co nie wspó lpracuje dobrze z narzedziami typu make. Stempel czasowy w pliku p. wykorzystuje czas lokalny bez strefy czasowej (mimo to jest elementem standardu POSIX). SCCS jawnie pamieta najwcześniejsza wersje modu lu, i kolejne wersje zawsze generuje, co jest naturalnie niezbyt efektywne. Jednak ogólnie jest efektywny. Systemy kontroli wersji SCCS 9 Systemy kontroli wersji SCCS 10 RCS RCS (Revision Control System) jest o 10 lat m lodszym nastepc a SCCS (powsta l w 1982). Mia l być równoważnym zamiennikiem, z prostszym interfejsem. Funkcje RCS: pamietanie pe lnego zestawu archiwalnych wersji danego pliku z automatyczna numeracja wersji, dokumentacja i rejestracja czasu utworzenia i autora; dostep do dowolnej wersji poprzez: numer, date, autora, badź nazwe, obs luga dodatkowych (bocznych) odga lezień wersji pliku (branches), koordynacja pracy pomiedzy wieloma programistami pracujacymi nad projektem poprzez ustawianie praw dostepu oraz mechanizm wypożyczania i zwracania plików, ograniczona możliwość automatycznego laczenia dwóch różnych zmodyfikowanych wersji jednego pliku; powstanie takich wersji może być wynikiem nieporozumienia programistów, badź checi przeniesienia na jedna ga laź rozwojowa pliku poprawek dokonanych na innej ga lezi korzystanie z automatycznie aktualizowanych znaczników w plikach. RCS: polecenia ci przekazuje plik systemowi RCS, nadaje mu numer wersji (kolejny) oraz pobiera i prosi o podanie opisu dokonanej modyfikacji; oryginalny plik zostaje skasowany (z wyjatkiem ci -u lub ci -l, to ostatnie wywo lanie od razu blokuje plik do edycji) co pobiera plik z RCS; z opcja -l również blokuje plik tak, że wypożyczona kopie można edytować rlog wyświetla kompletna historie pliku w lacznie z opisami istniejacych wersji i aktualnym stanem wypożyczenia pliku rcsdiff wyświetla różnice pomiedzy bieżacym plikiem a jego ostatnia wersja przechowywana przez RCS rcsmerge s luży do po laczenia dwóch zmodyfikowanych wersji jednego pliku rcs komenda administracyjna, s luży do modyfikacji ustawień Systemy kontroli wersji RCS 11 Systemy kontroli wersji RCS 12

RCS: przyk lad shasta-201> ci upr_shell.txt upr_shell.txt,v <-- upr_shell.txt enter description, terminated with single. or end of file: NOTE: This is NOT the log message! >> Prezentacja na temat Bourne shella i filtrow tekstowych >>. initial revision: 1.1 done shasta-202> ls -l upr_shell.txt upr_shell.txt: No such file or directory shasta-203> co -l upr_shell.txt upr_shell.txt,v --> upr_shell.txt revision 1.1 (locked) done shasta-206> ls -l upr_shell* -rw-r--r-- 1 witold gurus 180 Nov 5 11:58 upr_shell.aux -rw-r--r-- 1 witold gurus 41556 Nov 5 10:59 upr_shell.dvi -rw-r--r-- 1 witold gurus 9681 Nov 5 11:58 upr_shell.log -rw-r--r-- 2 witold gurus 129537 Nov 5 11:58 upr_shell.pdf -rw-r--r-- 2 witold gurus 215917 Nov 5 10:59 upr_shell.ps -rw-r--r-- 1 witold gurus 243737 Nov 5 10:59 upr_shell.ps2 -rw-r--r-- 1 witold gurus -rw-r--r-- 1 witold gurus -r--r--r-- 1 witold gurus shasta-207> rlog upr_shell.txt 30300 Nov 5 10:59 upr_shell.tex 30300 Nov 12 15:17 upr_shell.txt 30555 Nov 12 15:17 upr_shell.txt,v RCS file: upr_shell.txt,v Working file: upr_shell.txt head: 1.1 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 1; selected revisions: 1 description: Prezentacja na temat Bourne shella i filtrow tekstowych ---------------------------- revision 1.1 locked by: witold; date: 2003/11/12 14:17:50; author: witold; state: Exp; Initial revision ========================================================================= Systemy kontroli wersji RCS 13 Systemy kontroli wersji RCS 14 RCS: uwagi Czesto użycie RCS polega na utworzeniu podkatalogu o nazwie RCS, w której polecenia RCS umieszczaja swoje archiwa, co pozwala np. na latwa archiwizacje. Czesto również każde wprowadzenie pliku do archiwum od razu zwiazane jest z zatrzymaniem jego oryginalnej wersji źród lowej do dalszej edycji przez autora: ci -l upr_shell.txt W RCS nie ma mechanizmu tworzenia jednego spójnego wydania wszystkich modu lów źród lowych. Można to obejść tworzac wersje nazwane wszystkich modu lów. Paradoksalnie, koncepcja pamietania ostatniej wersji modu lu i odtwarzania wersji wcześniejszych umożliwia latwiejsz a korupcje pliku historii niż w SCCS, zw laszcza przy braku sum kontrolnych. Różne wersje programu diff stosowanego do tworzenia wersji historycznych prowadza do możliwości tworzenia historii, której nie da sie spójnie przetworzyć. Systemy kontroli wersji RCS 15 Systemy kontroli wersji RCS 16 Podsumowanie: lokalne systemy kontroli wersji SCCS i RCS reprezentuja grupe systemów kontroli wersji opartych na zestawie plików kontrolnych. Administracja takim systemem jest bardzo prosta i sprowadza sie do tworzenia dowolnych modu lów źród lowych. W razie potrzeby pliki kontrolne moga być manipulowane przez programiste/ów. Zarzadzanie prawami dostepu odbywa sie przez mechanizm grup lub list ACL. System nadzoruje wspó lprace programistów nad modu lem, ale nie wymusza żadnego konkretnego reżimu pracy. Modu l zablokowany przez jednego programiste do edycji, i nigdy nie zwrócony, może być administracyjnie odblokowany przez innego. System automatycznie rejestruje tworzenie nowych wersji, daty i czasy, oraz autorów. W wielu zastosowaniach ma to szereg zalet, zw laszcza w ma lych, pó lformalnych grupach. Jednak w wiekszych projektach administrator chce mieć nadzór nad sekwencja operacji na plikach. Do takich celów powsta ly systemy kontroli wersji typu klient-serwer. Systemy kontroli wersji lokalne 17 Systemy kontroli wersji lokalne 18

CVS CVS (Concurrent Versioning System) jest systemem kontroli wersji typu klient-serwer. CVS powsta l w 1986, pierwotnie zaimplementowany jako zbiór skryptów wewnetrznie wykorzystujacy RCS. http://www.bic.mni.mcgill.ca/~stever/cvs-tutorial/slides.pdf http://duch.mimuw.edu.pl/~janusz/dydaktyka/2004-2005/info_ zpp/prezentacje/cvs/index.html Systemy kontroli wersji CVS 19 Systemy kontroli wersji CVS 20 Subversion (SVN) http://www.tutorialspoint.com/svn/ Systemy kontroli wersji Subversion 21 Systemy kontroli wersji Subversion 22 https://try.github.io/ Git Systemy kontroli wersji Git 23 Systemy kontroli wersji Git 24

Materia ly źród lowe Mark Rochkind, The Source Code Control System, IEEE Transactions on Software Engineering Vol. 1 No. 4, 1975, dostepny jako: http://www.basepath.com/aup/talks/sccs-slideshow.pdf Systemy kontroli wersji 25