Verzovací systémy. Pořádek především!

Podobné dokumenty
SCM = Source Code Management software, základní typologie rozdělení je podle počtu a umístění základního úložiště kódu(=repository) na:

Obecné informace o cvičeních

Správa verzí souborů na cvičení

GIT hands-on. Mgr. Šimon Tóth. 12. dubna () GIT hands-on 12. dubna / 25

1 Nástroje pro správu verzí. 1.1 Pojmy:

Workflow sdíleného projektu ve VisualParadigm

PŘIDÁNÍ SOUBORŮ DO OBLASTI PŘIPRAVENÝCH ZMĚN

Java/QE Akademie - Osnova

9. Archivace a verzování svn

Vladimír

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Git. The information manager from hell. Robin Obůrka

Úvod do verzovacích systémů

Přehled témat. Základní pojmy

VCS CVS - Concurrent Version System SVN - Subversion Distribuované verzovací systémy DVCS Verzování. Základní pojmy verzování souborů

jako základní princip vývoje svobodného softwaru

Pro Git. Edice CZ.NIC

Lotus Quickr - ECM Integrace s LD/LN aplikacemi. Ing. Josef Homolka VUMS Legend

Evoluce deploye Od FTP po automatický deploy

Profesionální služby kolem Linuxu

Open source a komerční linuxové distribuce Libor Pecháček

VirtualBox desktopová virtualizace. Zdeněk Merta

Formy komunikace s knihovnami

Základní pojmy verzování souborů. SVN - Subversion vybrané pokročilé vlastnosti. Správce verzí. Repositár

ešení pro správu klientských počítač a mobilní tisk Číslo dokumentu:

PARTNER ČESKÝCH APLIKACÍ. (Výroba)

E-learningovýsystém Moodle

PPM umožňuje: PPM napomáhá: Systém je postaven na čtyřech základních pilířích, vedoucích k efektivnímu vývoji a optimalizaci portfolia:

Jakub Šesták. ESEJ DO PŘEDMĚTU DIGITÁLNÍ KNIHOVNY

Konsolidace zálohování a archivace dat

Provozní řád zálohování virtuální infrastrukury

Joelův test. 12 kroků k lepšímu programování. Jaroslav Šnajdr

SOU Valašské Klobouky. VY_32_INOVACE_3_20_IKT_Tvorba_webovych_stranek_Redakcni_systemy. Mgr. Radomír Soural. Zkvalitnění výuky prostřednictvím ICT

Zálohování v Linuxu: která možnost je ta správná?

Redakční systém Joomla. Prokop Zelený

Nástroje pro vývoj software

Název: On-line tvorba webu Anotace:

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Project management. Příprava projektu Zahájení High level plánování. Vykonávání Detailní plánování Vykonávání Řízení a monitorování

Datová úložiště CESNET

Frilo Control Center správa projektů

O projektu OpenOffice.org a IBM OS/2 OS/2 a Open Source

LINUX - INSTALACE & KONFIGURACE

Projekt do předmětu PAS. Textový editor

Instalace nvidia Optimus v Ubuntu 14.04

schopni vysvětlit, co znamená protokol NFS a k čemu se používá; umět rozpoznat autorské dílo a znát autorská práva;

Obsah. Úvodem 9 Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10

VY_32_INOVACE_INF.20. OS Linux

PARTNER ČESKÝCH APLIKACÍ. (Eshop)

DOCUMENT MANAGEMENT TOOLKIT

Vývoj software pro Linuxové distribuce. Installfest Praha,

Program Sharpdesk Sharpdesk řešení pro správu dokumentů

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Instalace a konfigurace web serveru. WA1 Martin Klíma

Práce se systémem Subversion (SVN)

1 Návod na instalaci prostředí LeJOS-NXJ a přehrání firmwaru NXT kostky

TSM for Virtual Environments Data Protection for VMware v6.3. Ondřej Bláha CEE+R Tivoli Storage Team Leader. TSM architektura IBM Corporation

Sdílení dat. Autor : Bc.Jiří Lipár

Desigo Control Point řešení pro ovládání a monitorování budov siemens.cz/desigo

ProjectWise V8 XM Edition

Linuxový kernel v posledních letech

Vývoj SW pro mobilní zařízení s ios. Petr Hruška, Skymia s.r.o. Teorie a praxe IP telefonie,

BM Software, Databáze Docházky 3000 na NAS serveru (pro MySQL) Němčičky 84, Němčičky u Břeclavi. Úvodní informace:

Perun na VŠUP. Jan Burian VŠUP v Praze

Obsah. Proč právě Flash? 17 Systémové požadavky 17. Jak používat tuto knihu 18 Doprovodný CD-ROM 19

Informační systémy 2008/2009. Radim Farana. Obsah. Základní principy XML

Střední odborná škola a Střední odborné učiliště, Hořovice

Začínáme s aplikací Třída Příručka učitele k aplikaci Třída pro ipad. Identifikátor zápatí_příručka recenzenta produktu měsíc

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

Jak testovat software v praxi. aneb šetříme svůj vlastní čas

Elektronická technická dokumentace Bc. Lukáš Procházka

Olga Rudikova 2. ročník APIN

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

Nové jazykové brány do Caché. Daniel Kutáč

MS Windows 7. Milan Myšák. Příručka ke kurzu. Milan Myšák

Střední odborná škola a Střední odborné učiliště, Hořovice

Zálohování v MS Windows 10

Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁŘSKÁ PRÁCE

Myšlenkové mapy v Linuxu

Po prvním spuštění Chrome Vás prohlížeč vyzve, aby jste zadali své přihlašovací údaje do účtu Google. Proč to udělat? Máte několik výhod:

CA AppLogic platforma typu cloud pro podnikové aplikace

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: AVTK. Úvod. strana 1

1 Přihlášení do aplikace Online Operátor Chat

Nový Node Monitor. 13. prosince Lukáš Turek Praha12.Net

MS Outlook konektor. Každý jsme hlava na nco jiného. My jsme hlavy na IT. Miloslav Záleský Patrik Šolc Jan Matuš

SQL Server Data Tools (SSDT) RNDr. David Gešvindr MVP: Azure MCSE: Data Platform MCSD: Windows Store

Proces vývoje HRIS Vema (Human Resources Information System) Jaroslav Šmarda

Vypracoval: Jiří Němeček, produktový manažer KOPOS KOLÍN a.s. Havlíčkova 432 CZ Kolín a IV. Konfigurátor KNS

Raspberry PI: Obr. 1 Raspberry PI

1 Přihlášení do aplikace Online Operátor. 2 Nastavení pro Adobe Flash Player

O projektu Nasazení OpenOffice.org v praxi

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

Symantec Protection Suite Small Business Edition Jednoduché, účinné a cenově dostupné řešení navržené pro malé firmy

Střední odborná škola a Střední odborné učiliště, Hořovice

Webový knihovní systém. Ing. Jiří Šilha, LANius s.r.o.

Úvodní příručka. Získání nápovědy Kliknutím na otazník přejděte na obsah nápovědy.

Microsoft SharePoint Portal Server Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR

Vzdálený přístup k počítačům

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

Transkript:

Verzovací systémy Pořádek především!

Problém: Při vývoji máme velké množství textů, zdrojových kódů, obrázků, knihoven atd. v různých verzích!

Problém: Při vývoji máme velké množství textů, zdrojových kódů, obrázků, knihoven atd. v různých verzích! Každá změna je krok do neznáma. Vrátit se k "poslední funkční verzi" bývá problém.

Řešení: "...průběžně si ukládejte záložní verze" "...soubory nepřepisujte, dělejte si záložní (.bak) verze"... což vlastně žádné řešení není, protože je to spousta práce, kterou nakonec stejně nikdo nebude dělat.

Systematické řešení: VCS Version Controlling System - průběžné ukládání souborů v různých verzích - ukládání do společného úložiště - řešení konkurenčních přístupů

Prvopočátky: CVS Concurrent Version System Umožpuje vytvářet "revize", tj. "snímky" aktuálního stavu vývoje, vracet se k předchozím verzím a porovnávat verze mezi sebou. CVS pracuje s konceptem "centrálního úložiště" víc vývojářů může pracovat najednou s jednou sadou zdrojových kódů.

Konkurence: Konkurenční přístup: "Co se stane, když v jednu chvíli udělají dva lidé změny v jednom souboru?" Některé VCS to řeší zamykáním souborů před změnou si musí vývojář zamknout soubor pro sebe, po změně jej zase odemknout.

Konkurence: Zamykání souborů používal např. MS Visual SourceSafe. Problém: nepružnost. Když vývojář zapomněl odemknout soubor, celý koncept se zbořil.

Konkurence: CVS řeší konkurenční přístup metodou "kdo dřív přijde..." Pokud zjistí, že někdo posílá změny do souboru, který byl mezitím změněn, ohlásí konflikt, a dotyčný musí poblém vyřešit tedy stáhnout si aktuální verzi souboru a udělat změny znovu. Pomoc: "DIFF" algoritmus, který zjišťuje rozdíly mezi soubory.

Subversion Vylepšení systému CVS: Subversion (SVN) Sada změn několika souborů ("commit") změna se většinou týče více souborů a je jako jeden celek. SVN sleduje i přesuny souborů mezi adresáři. Pokud se potřebujete vrátit k předchozím verzím, není problém dohledat, "kde který soubor byl"

Subversion Subversion podporuje větvení vývoje. Tedy: uložené zdrojové kódy jsou ve "funkční větvi", vývojáři pracují na nových funkcích v "pracovních větvích". Pokud je nějaká funkce dokončená, sloučí se úpravy z pracovní větve s hlavní větví.

Subversion Pomocí větvení lze snadno vyvíjet např. experimentální funkce vytvoříte novou větev a v ní experimentujete. Pokud vše dopadne dobře, zařadíte ji do hlavní větve, pokud ne, výsledek snadno zahodíte...

Vedlejší efekty Verzovací systémy umožpují sledovat změny a ke každé přidávat poznámky, co bylo změněno a kdy. Lze použít například při tvorbě dokumentace.

Co s tím? - Ideální pro spolupráci více lidí na jedné věci - Automatické zálohování - Bezproblémový návrat k "poslední funkční verzi" - Užitečné i pro jednotlivce

"Soukromé použití" Při práci na textech, grafice, HTML stránkách atd. lze použít VCS pro zálohování a verzování. Při práci stačí průběžně ve "význačných okamžicích" vytvářet nové verze. Pokud nastane jakýkoli problém, nebo zjistíme, že jdeme slepou uličkou, můžeme se snadno vrátit zpět.

Distribuované VCS Centralizovaná VCS přinášejí kritický bod: centrální úložiště. V případě selhání tohoto úložiště přestává fungovat celý systém. Tento problém má CVS i SVN. Centrální úložiště nemusí selhat, stačí že není dostupné (problém při práci z různých míst).

Distribuované VCS Problém bylo třeba řešit u open source, na kterém pracují desítky lidí v různých místech světa. 1. Všichni by měli mít k dispozici kompletní zdrojové kódy 2. Systém by neměl být závislý na "centrálním úložišti"

Řešení: Distribuované VCS Každý vývojář má k dispozici lokální úložiště, které je snadno použitelné a funguje plnohodnotně. Úložiště umí poslat změny na jiné úložiště, nebo z jiného úložiště změny stáhnout.

Nejznámější DVCS: Git Alternativa: Mercurial Git (a spol.) www.progit.org/book

Git Jednoduchost Rychlost Flexibilita Snapshot-based Distribuovanost, nezávislost na centrálním repositáři Rozmanité workflow Silná podpora nelineárního vývoje (branch & merge) Interaktivní příprava revizí a editace historie Vynikající dokumentace a komunita

Git Instalace je velmi jednoduchá, jako u jakéhokoli jiného programu existuje verze pro Windows, pro Mac i pro Linux, a tyto verze jsou většinou integrovány přímo s rozhraním systému, takže práce je intuitivní. Lze pracovat buď s UI, nebo s příkazovou řádkou. Vaše IDE možná podporu pro GIT má!

Práce s Gitem Vytváříme třeba web... Soubory budou: index.html style.css script.js fotka.jpg pozadi.png logo.png

Práce s Gitem V pracovním adresáři vytvoříme úložiště (repository): git init... to je celé! (v porovnání s vytvářením úložišť v SVN/CVS naprosto snadné).

Práce s Gitem...a teď soubory "zaverzujeme": git add * V tuhle chvíli Git ví, že má sledovat všechny soubory a hlídat jejich změny. Zároveo si vytvořil pracovní kopii těchto souborů ("stage").

Práce s Gitem Řekneme Gitu, aby vytvořil novou revizi souborů: git commit m "první verze" Git si interně vytvoří novou verzi a poznamená si stav souborů v tomto okamžiku.

Práce s Gitem Můžeme zjistit, jaké soubory jsou připravené k commitu, jaké jsou změněné a jaké nové git status

Práce s Gitem Vytváření nových verzí je dvojúrovpové (ilustrace: Scott Chacon)

Práce s Gitem Vracení jednotlivých souborů k předchozí verzi: git checkout soubor Lze vrátit i kompletní historii: git log (ukáže čísla revizí) git checkout číslo revize vrátí pracovní adresář do stavu v dané chvíli

Práce s Gitem Podobným způsobem lze vytvářet lokální větve (branches), přepínat mezi nimi, porovnávat je, slučovat,... Výhody: - jednoduchá práce - automatické zálohování - snadný návrat k předchozímu stavu - snadné experimentování

Spolupráce s Gitem Ke spolupráci mezi více autory, resp. ke sdílení dat, slouží příkazy git push a git pull. git push "tlačí" změny do vzdáleného úložiště git pull "táhne" změny ze vzdáleného úložiště (Stejný princip propagace změn funguje i v dalších DVCS)

Spolupráce s Gitem Git nemá centrální úložiště, takže se víc spolupracovníků musí dohodnout, čí úložiště bude to "hlavní" dokonce nemusí být žádné "hlavní", nebo může být "hlavních" víc. Vytvoření úložiště na serveru je stejně snadné jako na lokálním počítači: git init!

DVCS workflow DVCS mění způsob práce tvůrců: - podporuje experimenty - usnadpuje spolupráci - dává práci řád - umožpuje automatizaci některých procesů

Ukázka DVCS workflow Příklad: web http://vyuka.maly.cz Je použit DVCS Mercurial (obdoba Gitu, o něco jednodušší nastavení)

Ukázka DVCS workflow hg add hg commit hg push

Ukázka DVCS workflow on change: - - hg push

Ukázka DVCS workflow on change: - - hg up

Ukázka DVCS workflow hg pull

Ukázka DVCS workflow hg add hg commit hg push on change: - - hg push on change: - - hg up

Ukázka DVCS workflow hg pull

Ukázka DVCS workflow Pracovní verze Záloha Pracovní verze "Live verze" na webu

Ukázka DVCS workflow Proč? - mohu pracovat z notebooku i ze stolního PC a nemusím se starat, jestli mám nejnovější verzi všech souborů, to za mne řeší pull - nemusím se starat, jestli jsem nezapomněl přenést nějaký soubor, to si pořeší push - nestarám se o zálohování, to je plně transparentní

Ukázka DVCS workflow DVCS používám i při psaní článků: - mohu zkoušet různé verze textu - při pádu editoru nepřijdu o celý text - mohu článek v určitém okamžiku "típnout", vytvořit z něj novou větev a psát třeba o nějakém detailu, a pak se rozhodnout, jestli to sloučím s původním textem, nebo jestli z toho udělám samostatný článek

Pro Git Zaujal vás Git? Kniha "Pro Git", ke stažení zdarma, vydalo sdružení CZ.NIC GitHub.com volné úložiště s Gitem pro open source projekty