Submit Search
Upload
DWO 2010 - Mercurial
•
1 like
•
406 views
Mikołaj Pastuszko
Follow
Mercurial introduction presented at Dni Wolnego Programowania 2010 in Bielsko-Biała, Poland
Read less
Read more
Technology
Report
Share
Report
Share
1 of 51
Download now
Download to read offline
Recommended
DWO 2010 - ArchLinux
DWO 2010 - ArchLinux
Mikołaj Pastuszko
07 Połączenie z internetem przy użyciu aplikacji J2ME
07 Połączenie z internetem przy użyciu aplikacji J2ME
MarcinStachniuk
Budujemy wizerunek w Social Media:Jak wspolpracowac z agencja interaktywna
Budujemy wizerunek w Social Media:Jak wspolpracowac z agencja interaktywna
Katarzyna Młynarczyk
Trendy mozliwe do wykorzystania w marketingu
Trendy mozliwe do wykorzystania w marketingu
Socjomania
The A-to-Z Guide to SlideShare
The A-to-Z Guide to SlideShare
Barry Feldman
Craft the Perfect Posts for the "Big 3" Social Networks
Craft the Perfect Posts for the "Big 3" Social Networks
HubSpot
Masters of SlideShare
Masters of SlideShare
Kapost
What Makes Great Infographics
What Makes Great Infographics
SlideShare
Recommended
DWO 2010 - ArchLinux
DWO 2010 - ArchLinux
Mikołaj Pastuszko
07 Połączenie z internetem przy użyciu aplikacji J2ME
07 Połączenie z internetem przy użyciu aplikacji J2ME
MarcinStachniuk
Budujemy wizerunek w Social Media:Jak wspolpracowac z agencja interaktywna
Budujemy wizerunek w Social Media:Jak wspolpracowac z agencja interaktywna
Katarzyna Młynarczyk
Trendy mozliwe do wykorzystania w marketingu
Trendy mozliwe do wykorzystania w marketingu
Socjomania
The A-to-Z Guide to SlideShare
The A-to-Z Guide to SlideShare
Barry Feldman
Craft the Perfect Posts for the "Big 3" Social Networks
Craft the Perfect Posts for the "Big 3" Social Networks
HubSpot
Masters of SlideShare
Masters of SlideShare
Kapost
What Makes Great Infographics
What Makes Great Infographics
SlideShare
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
Empowered Presentations
10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization
Oneupweb
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
Content Marketing Institute
You Suck At PowerPoint!
You Suck At PowerPoint!
Jesse Desjardins - @jessedee
WTF - Why the Future Is Up to Us - pptx version
WTF - Why the Future Is Up to Us - pptx version
Tim O'Reilly
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
SlideShare
More Related Content
Viewers also liked
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
Empowered Presentations
10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization
Oneupweb
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
Content Marketing Institute
You Suck At PowerPoint!
You Suck At PowerPoint!
Jesse Desjardins - @jessedee
WTF - Why the Future Is Up to Us - pptx version
WTF - Why the Future Is Up to Us - pptx version
Tim O'Reilly
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
SlideShare
Viewers also liked
(6)
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
You Suck At PowerPoint!
You Suck At PowerPoint!
WTF - Why the Future Is Up to Us - pptx version
WTF - Why the Future Is Up to Us - pptx version
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
DWO 2010 - Mercurial
1.
Mercurial
...i o systemach kontroli wersji III Dni Wolnego Oprogramowania Bielsko-Biała 2010 © Mikołaj Pastuszko & Michał Ptaszek
2.
Agenda Po co
wersjonować? Co to jest (rozproszony) system kontroli wersji? Co to jest Mercurial? Jak tego użyć? Rozpraszanie O nie! Konflikt! Gałęzie i etykiety Konfiguracja Porównanie z innymi VCS Mercurial w Internecie 2 © Mikołaj Pastuszko & Michał Ptaszek 2010
3.
Po co wersjonować?
Argh, nadpisałem sobie plik... Argh, Ctrl+Z nie sięga tak daleko jak chcę... plik_0.1, plik_0.2, plik_0.5, plik_1.1, plik_2.0... który to był?! A gdyby napisać to na 2 sposoby... Skopiuję katalog... Jak opublikować swoją pracę?... Jak pozwolić innym ją rozwijać?... Jak połączyć zmiany moje i kolegi?... 3 © Mikołaj Pastuszko & Michał Ptaszek 2010
4.
Co to jest
VCS? Version Control System → System Kontroli Wersji Polega na śledzeniu zmian Zawartości plików (głównie pliki tekstowe, ale nie tylko) Położenia plików Metadanych Zmiany dokonywane przez wiele osób Obsługa konfliktów Możliwość tworzenia gałęzi, etykiet itd. 4 © Mikołaj Pastuszko & Michał Ptaszek 2010
5.
Co to jest
rozproszony VCS? Architektury systemów kontroli wersji scentralizowane rozproszone 5 © Mikołaj Pastuszko & Michał Ptaszek 2010
6.
Co to jest
rozproszony VCS? Distributed Version Control System Brak centralnego repozytorium → niezawodność! Użytkownicy używają repozytoriów lokalnych Większość operacji nie wymaga sieci → szybkość! Synchronizacja między repozytoriami w dowolnej chwili pull push 6 © Mikołaj Pastuszko & Michał Ptaszek 2010
7.
Co to jest
rozproszony VCS? Może wersjonować lokalną pracę Nie wymaga tworzenia serwera Uczestnictwo w projekcie nie wymaga decyzji opiekuna Praca na lokalnym repozytorium Możliwość publikacji własnej gałęzi Opiekun decyduje o scalaniu zmian (gałęzi) Może przyjąć architekturę scentralizowaną 7 © Mikołaj Pastuszko & Michał Ptaszek 2010
8.
Co to jest
Mercurial? Rozproszony System Kontroli Wersji ang. mercury – rtęć → Twórca: Matt Mackall Pierwsza wersja opublikowana 19 kwietnia 2005 Platformy GNU/Linux MacOS X OpenSolaris Windows i inne Napisany w języku Python 8 © Mikołaj Pastuszko & Michał Ptaszek 2010
9.
Co to jest
Mercurial? Założenia Wysoka wydajność Skalowalność Bogate możliwości operacji na gałęziach Bardzo prosty w nauce i korzystaniu Wiele możliwych przypadków użycia Rozszerzalny dzięki wtyczkom 9 © Mikołaj Pastuszko & Michał Ptaszek 2010
10.
Do dzieła!
W tej scenie Michał podchodzi do laptopa i zaczyna się prezentacja działania na żywo 10 © Mikołaj Pastuszko & Michał Ptaszek 2010
11.
Przykład szkolny
Mam napisać wypracowanie do szkoły. Chcę mieć możliwość powrotu do poprzednich wersji. (na wypadek jakby pies zjadł plik) 11 © Mikołaj Pastuszko & Michał Ptaszek 2010
12.
Przykład szkolny Tworzenie repozytorium
# hg init 12 © Mikołaj Pastuszko & Michał Ptaszek 2010
13.
Przykład szkolny Status repozytorium
(plików) # hg status [plik] 13 © Mikołaj Pastuszko & Michał Ptaszek 2010
14.
Przykład szkolny
Dodanie pliku # hg add [plik] 14 © Mikołaj Pastuszko & Michał Ptaszek 2010
15.
Przykład szkolny Zmiany treści
plików # hg diff [plik] 15 © Mikołaj Pastuszko & Michał Ptaszek 2010
16.
Przykład szkolny Zapamiętanie zmian #
hg ci [plik] # hg commit [plik] 16 © Mikołaj Pastuszko & Michał Ptaszek 2010
17.
Przykład szkolny
Historia zmian # hg log [plik] 17 © Mikołaj Pastuszko & Michał Ptaszek 2010
18.
Przykład szkolny Przenoszenie i
kopiowanie plików # hg mv plik1 plik2 # hg cp plik1 plik2 18 © Mikołaj Pastuszko & Michał Ptaszek 2010
19.
Przykład szkolny Dostęp do
starszych wersji # hg update [wersja] 19 © Mikołaj Pastuszko & Michał Ptaszek 2010
20.
Przykład szkolny
Powrót do najnowszej wersji # hg update # hg update tip tip – najnowsza z zapamiętanych zmian (niezależna od gałęzi) 20 © Mikołaj Pastuszko & Michał Ptaszek 2010
21.
Ciekawostka Mercurial uratował tę
prezentację przed krwiożerczym OpenOffice... 21 © Mikołaj Pastuszko & Michał Ptaszek 2010
22.
Rozpraszanie W tej scenie
repozytorium zostaje sklonowane (rozproszone) na laptopa z prezentacją. 22 © Mikołaj Pastuszko & Michał Ptaszek 2010
23.
Przykład szkolny rozproszony Wypracowanie,
które piszę, chcę udostępnić koledze by sprawdził pod kątem błędów. (i dopisał kilka akapitów :) ) 23 © Mikołaj Pastuszko & Michał Ptaszek 2010
24.
Przykład szkolny rozproszony Publikacja
repozytorium przez HTTP # hg serve 24 © Mikołaj Pastuszko & Michał Ptaszek 2010
25.
Przykład szkolny rozproszony
Klonowanie repozytorium # hg clone źródło [cel] źródło → (http, https, ssh, lokalny katalog) 25 © Mikołaj Pastuszko & Michał Ptaszek 2010
26.
Przykład szkolny rozproszony
Pobranie zmian z zewnątrz # hg pull [źródło] 26 © Mikołaj Pastuszko & Michał Ptaszek 2010
27.
Przykład szkolny rozproszony
Wysłanie zmian na zewnątrz # hg push [cel] 27 © Mikołaj Pastuszko & Michał Ptaszek 2010
28.
O nie! Konflikt!
28 © Mikołaj Pastuszko & Michał Ptaszek 2010
29.
Co to jest
konflikt? head – najnowsza wersja zmian w danej gałęzi 29 © Mikołaj Pastuszko & Michał Ptaszek 2010
30.
Przykład szkolny bezkonfliktowy
Wyświetlenie aktualnych wersji head # hg heads 30 © Mikołaj Pastuszko & Michał Ptaszek 2010
31.
Przykład szkolny bezkonfliktowy
Wyświetlenie wersji tip # hg tip 31 © Mikołaj Pastuszko & Michał Ptaszek 2010
32.
Jak to połączyć? merge
– łączenie wersji head 32 © Mikołaj Pastuszko & Michał Ptaszek 2010
33.
Przykład szkolny bezkonfliktowy
Połączenie wersji head # hg merge [wersja] 33 © Mikołaj Pastuszko & Michał Ptaszek 2010
34.
Konflikt kontratakuje! W tej
scenie Michał i Mikołaj niezależnie edytują ten sam plik... 34 © Mikołaj Pastuszko & Michał Ptaszek 2010
35.
Przykład szkolny bezkonfliktowy
Wyświetlenie listy konfliktów # hg resolve --list [plik] 35 © Mikołaj Pastuszko & Michał Ptaszek 2010
36.
Przykład szkolny bezkonfliktowy Oznaczenie
konfliktu jako rozwiązanego # hg resolve --mark [plik] 36 © Mikołaj Pastuszko & Michał Ptaszek 2010
37.
Gałęzie Anonimowe
Nowa wersja head zostaje utworzona implicite (nieoczekiwanie) Raczej jako skutki uboczne innych operacji Stosunkowo krótki czas życia (zakończony przez merge) Nazwane Nowa wersja head zostaje utworzona explicite (z zamierzeniem) Tworzenie jest celowe (np. praca nad inną funkcjonalnością) Stosunkowo długi czas życia (niekoniecznie kończony przez merge) Mają nazwy 37 © Mikołaj Pastuszko & Michał Ptaszek 2010
38.
Przykład szkolny rozgałęziony
Utworzenie nazwanej gałęzi # hg branch nazwa 38 © Mikołaj Pastuszko & Michał Ptaszek 2010
39.
Przykład szkolny rozgałęziony
Wyświetlenie nazwanych gałęzi # hg branches 39 © Mikołaj Pastuszko & Michał Ptaszek 2010
40.
Przykład szkolny rozgałęziony
Przejście do nazwanej gałęzi # hg update nazwa 40 © Mikołaj Pastuszko & Michał Ptaszek 2010
41.
Etykiety Etykieta (tag) -
nazwa nadawana konkretnej wersji 41 © Mikołaj Pastuszko & Michał Ptaszek 2010
42.
Przykład szkolny etykietowany
Oznaczenie wersji etykietą # hg tag nazwa 42 © Mikołaj Pastuszko & Michał Ptaszek 2010
43.
Przykład szkolny etykietowany
Wyświetlenie etykiet # hg tags 43 © Mikołaj Pastuszko & Michał Ptaszek 2010
44.
Przykład szkolny etykietowany Przejście
do wersji o danej etykiecie # hg update nazwa 44 © Mikołaj Pastuszko & Michał Ptaszek 2010
45.
Konfiguracja - hgrc
Per system /etc/mercurial/hgrc np. wtyczki, program diff itp. Per użytkownik Kolejność interpretowania $HOME/.hgrc np. nazwa użytkownika Per repozytorium <repo>/.hg/hgrc np. domyślny adres repozytorium do push i pull 45 © Mikołaj Pastuszko & Michał Ptaszek 2010
46.
Konfiguracja Ignorowanie wersjonowania
plików <repo>/.hgignore Format ścieżek: – glob → shell style – regexp → wyrażenie regularne Może być (i często jest) wersjonowany Etykiety (tags) <repo>/.hgtags Lista numerów wersji i ich etykiet 46 © Mikołaj Pastuszko & Michał Ptaszek 2010
47.
Mercurial vs SVN
Architektura: rozproszona ↔ scentralizowana Praca lokalna: możliwa i łatwa ↔ niemożliwa Relokacja repozytorium: łatwa (klonowanie) ↔ pracochłonna Gałęzie (czas życia): przejrzysty ↔ śledzenie trudniejsze Zapamiętywanie zmian: szybkie ↔ wymaga sieci Konflikty: mogą być większe ↔ małe o ile częsty zapis Puste katalogi: brak obsługi ↔ obsługiwane 47 © Mikołaj Pastuszko & Michał Ptaszek 2010
48.
Mercurial vs Git
Obsługa i konfiguracja: prosta ↔ trudniejsza Elastyczność: przyzwoita ↔ ogromna Porządkowanie rep.: niewymagane ↔ wymagane Historia repozytorium: stała i rosnąca ↔ możliwość zmian Merge: 2 rodziców ↔ dowolna ilość rodziców Język implementacji: Python ↔ C → http://gitvsmercurial.com/ ← 48 © Mikołaj Pastuszko & Michał Ptaszek 2010
49.
Hosting repozytoriów Mercuriala
Bitbucket → http://bitbucket.org/ Google Code → http://code.google.com/ SourceForge → http://sourceforge.net/ Assembla → http://www.assembla.com/ Codebase → http://www.codebasehq.com/ GNU Savannah → http://savannah.gnu.org/ Alioth (Debian) → http://alioth.debian.org/ 49 © Mikołaj Pastuszko & Michał Ptaszek 2010
50.
Źródła http://mercurial.selenic.com/ Wikipedia
→ http://en.wikipedia.org/wiki/Mercurial http://versioncontrolblog.com/ http://versioncontrolblog.com/comparison/ http://koichitamura.blogspot.com/2008/06/mercurial-vs-subversion.html http://code.google.com/p/support/wiki/DVCSAnalysis → http://gitvsmercurial.com/ ← 50 © Mikołaj Pastuszko & Michał Ptaszek 2010
51.
Dziękujemy Pytania?
51 © Mikołaj Pastuszko & Michał Ptaszek 2010
Download now