4IT115 1. přednáška Správa verzí Luboš Pavlíček. 1. přednáška - správa verzí 2 Cíle správy verzí  centralizované místo, kde jsou uloženy různé verze.

Slides:



Advertisements
Podobné prezentace
PLAYBOY Kalendar 2007.
Advertisements

© 2000 VEMA počítače a projektování spol. s r. o..
Využití cloudových služeb ve školství
Deník veřejné knihovny na rok 2009 Změny v evidenci činnosti knihoven.
Stránka 1, © Vema, a. s.. Stránka 2, © Vema, a. s. Podnikové aplikace  Integrovaný podnikový systém (Integrated Business System):  komplex aplikací.
Webové rozhraní pro datové úložiště
ŘEŠENÍ PRO TÝMOVOU INFRASTRUKTURU
Vlastní skript může být umístěn: v hlavičce stránky v těle stránky
Vizuální Systém Fotbal
Ing. Jan Mittner MySQL Workbench 2. Základy práce s databází 3. Subversion 2.
*Zdroj: Průzkum spotřebitelů Komise EU, ukazatel GfK. Ekonomická očekávání v Evropě Březen.
Ing. Jan Mittner Rozšíření modelu 2. Vazba 1:n 3. Vazba m:n 2.
PROGRAM PRO VÝUKU T ČLÁNKU
Lego Mindstorms Martin Flusser.
DIGITÁLNÍ UČEBNÍ MATERIÁL Číslo projektuCZ.1.07/1.5.00/ Název projektuEU peníze středním školám Masarykova OA Jičín Název školyMASARYKOVA OBCHODNÍ.
Uživatelé, Role, Schémata
J a v a Začínáme programovat Lucie Žoltá. Odkazy - oficiální stránky (překladače, help, metody, vývojové prostředí NetBeans,...)
Rozvoj eGovernmentu ve Středočeském kraji, reg. č. projektu CZ.1.06/2.1.00/ Krajské digitální úložiště Vladimír Dinuš, ICZ a. s
Úvod do databází Databáze.
Vizualizace projektu větrného parku Stříbro porovnání variant 13 VTE a menšího parku.
Vzdělávací materiál / DUMVY_32_INOVACE_02B14 Příkazový řádek: obsah souborů PŘÍKLADY AutorIng. Petr Haman Období vytvořeníLeden 2013 Ročník / věková kategorie3.
Dělení se zbytkem 3 MODERNÍ A KONKURENCESCHOPNÁ ŠKOLA
MODERNÍ A KONKURENCESCHOPNÁ ŠKOLA reg. č.: CZ.1.07/1.4.00/ Základní škola, Šlapanice, okres Brno-venkov, příspěvková organizace Masarykovo nám.
SmartPhone start - Apple iPhone
Vzdělávací materiál / DUMVY_32_INOVACE_02B15 Příkazový řádek: uživatelské účty AutorIng. Petr Haman Období vytvořeníLeden 2013 Ročník / věková kategorie3.
MAGNET – NOVÁ ŘADA PROGRAMŮ TOPCON
Správa verzí Luboš Pavlíček.
Dělení se zbytkem 5 MODERNÍ A KONKURENCESCHOPNÁ ŠKOLA
pit – CAD 2011 Nové funkce a rozšíření Strana: 1www.pitsoftware.cz /

Petr Šetka, MVP Exchange, MCSE:Messaging, MCT Windows Small Business Server 2003 R2.
DIGITÁLNÍ UČEBNÍ MATERIÁL
Příkazový řádek CMD.
PHP – Základy programování
Novinky a strategie společnosti Vema, a. s.
Jaroslav Šnajberk, Přemek Brada
Konference SI Praha Ladislav Přívozník is:energy czech a.s.
Vypracoval: Ondřej Dvorský Třída: VIII.A
Databázové systémy Architektury DBS.
Petr Brůha  udělat průzkum využití moderních vývojových nástrojů na Kivu  doplňuji průzkum Jana Štěbetáka z dokumentu.
Ant Připravil: Ing. Jan Kolomazník. strana 2 Proč vznikl Potřeba sestavovat komplexní Nezávisle na platformě Popis založený na xml Spouštění různých úloh.
Internet.
Databázové systémy Přednáška č. 6 Proces návrhu databáze.
Tvo ř te historii. CAD a Data Management VIII. ročník konference Autodesk Academia FÓRUM listopad 2008 Ing.Radomír Žvak DAGIS a.s.
Celní služby 2000 Radek Sedláček TranSoft a.s Radek Sedláček TranSoft a.s
Alg91 Textové soubory Na rozdíl od jiných typů souborů jsou textové soubory určené pro gramotné lidské oko. Textový soubor je posloupnost znaků členěná.
Excelent v EKOSu Ing. Daniela Dufková. Excelent v EKOSu Ing. Daniela Dufková.
Katedra elektrotechniky a automatizace Technická fakulta, ČZU Praha Roboty a manipulátory - - přednášky.
Výpočetní technika a algoritmizace I
Gymnázium, Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Hodonín Počítačové sítě Architektura.
2 Ing. Jan Keprt Centrální správa uživatelů 3 Jak to bylo dosud Bylo třeba nastavení uživatelů provést zvlášť, v každém modulu samostatně. Uživatel si.
NAS NAS - Network Attached Storage NAS - Network Attached Storage Je to síťové datové úložiště, které bývá nejčastěji použito jako centrální úložiště dat.
ELearning Snímek 1 eLearning Tomáš Kubálek
TRUHLÁŘ I.ročník Výrobní zařízení Střední škola stavební Teplice
Práce se šablonami v MS Word 2007
Copyright (C) 1999 VEMA počítače a projektování, spol. s r.o.1 Lucián Piller Intranet HR.
Návrh a tvorba WWW Přednáška 13 Vývoj webových aplikací.
2 Fučíková Sylvie HR/Win – moderní technologie pro osvědčené aplikace.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA ELEKTROTECHNICKÁ KATEDRA TEORETICKÉ ELEKTROTECHKY Oddělení informatiky Java Micro Edition pro mobilní zařízení.
Operační systém GNU Linux
Srovnání systémů řízení projektů Vypracovala: Jitka Procházková.
Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY.
Instalace Javy ( pro Windows )
Vlastnosti souborů Jaroslava Černá.
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o, Orlová Lutyně
Připravil: Ing. Jan Kolomazník, Ph.D.
Správa disků
Web Application Scanning
Transkript prezentace:

4IT přednáška Správa verzí Luboš Pavlíček

1. přednáška - správa verzí 2 Cíle správy verzí  centralizované místo, kde jsou uloženy různé verze SW a souvisejících dat,  historické verze - revize  dle platformy/zákazníka - varianty  řízený přístup pro udržení konzistence,  zdroj pro sestavení aplikací a nepřetržitou integraci,  poskytovat aktuální data jednotlivým vývojářům  zdroj pro "manažerské" statistiky

Nástroje pro verzování  Ruční verzování  adresářová struktura  dohody a konvence pro označení verzí v názvech,  často se používá pro dokumenty, modely,...  Systémy na správu verzí  podpora více uživatelů,  podpora porovnávání rozdílů,  ukládání všech verzí v zapouzdřené formě,  např. rcs, CVS, Subversion, Perforce, Visual Sourcesafe, ClearCase,  wiki - pro textové informace © Luboš Pavlíček 1. přednáška - správa verzí 3

4 CVS (Concurrent Versioning System)  sdílené úložiště, soukromé pracovní prostory,  zjišťování stavu prvků, rozdílů proti úložišti,  podpora více uživatelů (optimistický přístup k zamykání souborů),  lokální či vzdálené úložiště,  nadstavba nad rcs,  příkazová řádka, grafické nadstavby,  integrace do mnoha IDE a nástrojů

5 © Luboš Pavlíček1. přednáška - správa verzí Subversion  nástupce CVS  nové možnosti:  přejmenování, verzování adresářů,  atomický commit,  binární diff,  možnost přístupu přes webdav (přístupová práva),  způsob práce a příkazy podobné CVS

6 © Luboš Pavlíček1. přednáška - správa verzí SVN: nástroje  příkazová řádka,  samostatné  TortoiseSVN  integrované do vývojového prostředí  Eclipse, NetBeans,...  správa přes web, statistiky  např. chora, websvn, wsvn,  integrace do nástrojů pro sestavování  ant,  Hudson, ....

Eclipse a NetBeans  nutno doinstalovat plugin,  subclipse  subclipse – subclipse.tigris.org  subversive –  NetBeans 6.5 Subversion 1.5 for Windows  doinstalovat plugin „Subversion 1.5 for Windows“  nainstalovat si řádkového klienta 7 © Luboš Pavlíček1. přednáška - správa verzí

Přístup k úložišti - protokol  přes protokol http/https  přes speciální protokol svnserve (tcp/3690) svn://host.example.com/project1  přímo na souborovém systému (file:) file:///var/svn/user/pavlicek  kombinace ssh+file svn+ssh://host.example.com/repos/project 8 © Luboš Pavlíček1. přednáška - správa verzí

9 kitscm – přístup k úložištím  úložiště pro jednotlivce  úložiště pro projekty a skupiny

10 © Luboš Pavlíček1. přednáška - správa verzí kitscm - přístup k úložišti  plnohodnotný přístup - pomocí klienta k SVN:  řádkový klient - subversion.tigris.org  tortoiseSVN  Eclipse + plugin Subclipse, popř. Subversive  NetBeans využívá se řádkový klient nebo plugin „SubVersion 1.5 for Windows“  přístup pouze ke čtení:  pomocí www prohlížeče - pouze poslední verzi,  pomocí aplikace na prohlížení - konkrétně WebSVN Doporučení: činnost pouze v trunku (vlastní vývoj): používat Eclipse či NetBeans činnost mimo trunk (s více projekty, vytvoření tagu/větve, spojování větví,...): samostatný klient, popř. v IDE, kontrola obsahu na serveru: přes webové rozhraní

1. přednáška - správa verzí 11 Jednotlivé části systému (subversion) pracoviště

1. přednáška - správa verzí 12 Úložiště - repository úložiště Úložiště (databáze projektu, repository) = sdílený datový prostor, kde jsou uloženy všechny prvky konfigurace projektu,

13 © Luboš Pavlíček1. přednáška - správa verzí Struktura úložiště  obvykle adresářová,  v úložišti více projektů,  každý projekt obvykle má:  Kmen (trunk) – hlavní vývojová linie,  Větve (branches) – paralelní vývojová linie  Značky (tags) – důležitý milník, stav konfigurace v určitém čase, např. pmd pmd pmd pmd …….

14 © Luboš Pavlíček1. přednáška - správa verzí Struktura úložiště / projekt1 trunk tags verze 0.1 verze 0.2 verze 0.3 branches projekt2 /adventura/trunk logika textoveRozhrani grafika TextoveRozhrani.java Hra.java Vec.java Mistnost.java

15 © Luboš Pavlíček1. přednáška - správa verzí počítač vývojářeúložiště Pracoviště - workspace c:\svn projekt1 projekt2 trunk tags branches / projekt1 trunk tags branches projekt2 trunk tags branches

16 © Luboš Pavlíček1. přednáška - správa verzí Revize čas

17 © Luboš Pavlíček1. přednáška - správa verzí Subversion  "skrytý" adresář.svn  v něm údaje o změnách v pracovišti  práce s revizemi  lze stáhnout konkrétní revize (jeden soubor z revize či všechny),  porovnávat soubory v jednotlivých revizích,  některé soubory se nepřenášejí!!!  předdefinové v klientech: *.bak, *.*~, *.*#  lze rozšířit přes property svn:ignore  pro jednotlivé adresáře,  vhodné *.class, *.ctxt

18 © Luboš Pavlíček1. přednáška - správa verzí Operace mezi pracovištěm a úložištěm  check-out – vytvoří lokální pracoviště a zkopíruje prvky z úložiště  update – zkopíruje se kopie prvků do lokálního pracoviště,  commit (check-in) – uložení změněných prvků do úložiště,  export  import

Operace na pracovišti i úložišti I add – začlenění souboru/adresáře delete – smazání souboru či adresáře mkdir – vytvoření adresáře move – přesun/přejmenování souboru copy (branch/tag) – vytvoření kopie souboru/adresáře na pracovišti či v úložišti, též vytvoření větve či značky proplist, propset, propdel – správa vlastností (properties), 19 © Luboš Pavlíček1. přednáška - správa verzí

úložiště projekt 1projekt 2 kmenznačka 1značka 2 značka 1kmen počítač 1 pracoviště počítač 2 pracoviště kmen en kmen en kmen

Operace na pracovišti i úložišti II revert – vrácení úprav na pracovišti cleanup – oprava pracoviště do stabilního stavu po nedokončených operacích, lock – nastavení zámku, unlock – zrušení zámku, resolved – nastavení příznaku, že konflikt je vyřešen, 21 © Luboš Pavlíček1. přednáška - správa verzí

Konflikty – přístup Copy-Modify-Merge 1 22 © Luboš Pavlíček1. přednáška - správa verzí A AA HarrySally Dva uživatelé si zkopírují soubor A A’A’A”A” HarrySally Oba soubor editují A”A” A’A’A”A” HarrySally Sally odešle změny na server A”A” A’A’A”A” Harry má smůlu - HarrySally X commit

Konflikty – přístup Copy-Modify-Merge 2 23 © Luboš Pavlíček1. přednáška - správa verzí A”A” A’ A”A”A” HarrySally Harry provede update A”A” A*A*A”A” HarrySally Harry sloučí soubory (merge) A*A* A*A*A”A” HarrySally Harry odešle sloučenou verzi A*A* A*A*A*A* Sally si též zaktualizuje HarrySally update commitupdate

24 © Luboš Pavlíček1. přednáška - správa verzí Konflikty - Copy-Modify-Merge 3  při operacích update a commit,  více souborů po update: 1.ručně vyřešit konflikt do souboru "Hra.java" 2.resolve – nastavení příznaku, že konflikt vyřešen, 3.update  též lze zrušit změny - revert Hra.java- správná verze Hra.java.mine- moje úpravy Hra.java.r1- počáteční stav u mne Hra.java.r2- stav v úložišti

Operace na pracovišti i úložišti III lock – nastavení zámku, unlock – zrušení zámku,  optimistický zámek  lze editovat bez získání zámku,  nelze provést commit, pokud někdo jiný má zámek,  pesimistický zámek  bez získání zámku nelze provést žádné úpravy,  k souborům s požadavkem na pesimistický zámek se nastavuje vlastnost (property) svn:needs-lock 25 © Luboš Pavlíček1. přednáška - správa verzí

Konflikty – použití zámků (lock) 26 © Luboš Pavlíček1. přednáška - správa verzí A AA HarrySally Dva uživatelé si zkopírují soubor A AA HarrySally Harry požádá o zámek A A’A’A HarrySally Sally požádá o zámek A’A’ A’A’A Harry odešle a odemkne HarrySally X commitLOCK UNLOCK

27 © Luboš Pavlíček1. přednáška - správa verzí Struktura individuálního úložiště / adventura trunk tags textovaVerze grafickaVerze adventuraZaklad trunk tags trunk logika Mistnost.java Vec.java Hra.java textoveRozhrani TextoveRozhrani.java grafika

28 © Luboš Pavlíček1. přednáška - správa verzí Doporučení: práce doma a ve škole  doma s připojením k internetu  poprvé provést checkout trunku,  po změnách commit,  při vytváření značek:  v samostatném pomocném adresáři,  checkout celého úložiště,  zkontrolovat obsah trunku,  vytvořit značku,  commit na server,  zrušit adresář,  ve škole - vytvořit adresář na lokálním disku, po práci zrušit,

29 © Luboš Pavlíček1. přednáška - správa verzí Doporučení: práce se soubory v pracovišti  přidání nového souboru/adresáře - nutno add (klient obvykle navrhne)  náhodné zrušení souboru - operací revert lze obnovit soubor z úložiště či z předchozích revizí,  úmyslné zrušení souboru - přes klienta !!!,  přejmenování/přesun souboru – přes klienta,

Uložení rozdílových informací 1  Weave (tkanina)  ukládají se jednotlivé řádky a čísla revizí, ve kterých se nachází,  používá se v SCCS, pomalé,  lze snáz a lépe automatizovat merge, 1. přednáška - správa verzí 30 Z4 A1, 2, 3, 4 X2 B1, 2, 3, 4 Y3 ABAB AXBAXB ABYABY ZABZAB vývoj řádek v souboru uloženo v souboru v úložišti

Uložení rozdílových informací 2  Delta  rozdíly mezi dvěma verzemi souboru,  různé algoritmy (diff, xdelta, zdelta, …), 1. přednáška - správa verzí 31 public class Hello { public static void main(String [] args) { System.out.println("Hello world"); } public class Hello { public static void main(String [] args) { System.out.println("Ahoj svete"); } 3c3 < System.out.println("Hello world"); --- > System.out.println("Ahoj svete"); Rozdílový soubor z programu diff

Distribuovaná správa verzí  výhody  rychlejší přístup,  není single-point-of- failure,  snazší vytváření větví, zkušebních verzí  nevýhody  zabírá hodně místa na stanici,  v úložišti by měl být pouze jeden projekt,  chybí podpora v IDE, 1. přednáška - správa verzí 32

Distribuovaná správa verzí 2  Některé servery: darcs – napsaný v Haskellu, git – používá se pro jádro linuxu, Bazaar – používá se pro vývoj Ubuntu, mercurial – projekty NetBeans, OpenJdk, OpenSolaris, Xine, … 1. přednáška - správa verzí 33

34 © Luboš Pavlíček1. přednáška - správa verzí Literatura  Pilato C.M., Collins-Sussman B., Fitzpatrick B.W.: Version Control with Subversion. On-line na 