SlideShare a Scribd company logo
1 of 17
Mercurial –
распределенная система
 управления версиями
Системы управления версиями (VCS)
• Централизованные
  (CVS, SVN, VSS, TFS, Perforce, Vault, …)
• Распределенные (DVCS)
  (Git, Mercurial, Bazaar, …)
Централизованные VCS
Ann

             commit
                                    Sources



             update
Bob

             update




                      Репозиторий        Рабочая копия
Распределенные VCS

                         Server ?
                                             pull

                 commit                 push
                 update

                                                               Bob
                  pull
Ann                                                 commit
                                                      update
        commit                        push
        update

                               Репозиторий          Рабочая копия
Достоинства распределенных VCS
1. Можно продолжать работать, даже если нет
   возможности связаться с сервером (работа вне
   офиса, сервер недоступен…)
2. Разделение момента внесения кода в
   репозиторий и момента получения этого кода
   остальной командой
3. Положительные побочные эффекты: хорошая
   поддержка работы с ветвями
Недостатки распределенных VCS
1. Более длительное обучение, смена мышления
2. Теперь у вас теперь намного больше способов
   прострелить себе ногу!!
Mercurial
• Initial release: апрель 2005
• Stable release: 2.0.1, декабрь 2011
• Free под лицензией GNU GPL v2
• Доступность на *nix, Windows, Mac OS
• Доступность на Bitbucket, CodePlex, Google Code,
  SourceForge, ...
• Возможность конвертации репозиториев CVS,
  Subversion, Perforce, Git, Bazaar…

• Интеграция с Visual Studio, NetBeans, Eclipse
• GUI: TortoiseHg, MacHg
Mercurial в деле
•   Go programming language
•   Mozilla
•   NetBeans
•   OpenJDK
•   OpenOffice.org
•   Python
•   Symbian Platform
•   W3C
•   …
Changeset. Набор изменений
• Является атомарной единицей истории в репозитории
• Фиксируется в репозитории при выполнении commit
• При push и pull между репозиториями пересылаются
  фрагменты истории, т.е. наборы changeset’ов
• Содержит:
  1.   Информацию об изменениях в файлах, но не конечные их
       версии
  2.   Имя автора, описание, время фиксации в репозитории
  3.   Имя ветви разработки
История изменений
                  7: febd28ca9d94

                  6: 0c9b8a4d0ece

                                    5: a7260c887e12

                                    4: f74700da1dfc

3: 8f893b58f266

2: e0c28f5e936c

                  1: 0978b4a57360

                  0: c4daeac3e815
Расположение в файловой системе

    Sources

         .hg              Репозиторий




         Core

         Plugins          Рабочая копия


         HowToBuild.txt
Начало работы
•   Справка: hg help
•   Создание репозитория: hg init
•   Статус рабочей копии: hg status
•   Включить в следующий commit информацию о
    добавленных и удаленных файлах: hg addremove
•   Фиксация изменений: hg commit
•   Получение рабочей копии: hg update
•   Слияние: hg merge
•   История изменений: hg log
Практика
Работа в команде
•   Клонирование репозитория: hg clone
•   Получение изменений: hg pull
•   Список изменений на получение: hg incoming
•   Отправка изменений: hg push
•   Список изменений на отправку: hg outgoing
Практика
Материалы для изучения
Официальный сайт:
http://mercurial.selenic.com/

“Hg Init: a Mercurial tutorial” by Joel Spolsky:
http://hginit.com/

“Mercurial: The Definitive Guide” by Bryan O'Sullivan:
http://hgbook.red-bean.com/
Спасибо за внимание
Автор: Максим Терехов
E-mail: terekhovm@gmail.com

More Related Content

What's hot

Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.Alexey Lesovsky
 
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»Tanya Denisyuk
 
DC/OS – больше чем PAAS, Никита Борзых (Express 42)
DC/OS – больше чем PAAS, Никита Борзых (Express 42)DC/OS – больше чем PAAS, Никита Борзых (Express 42)
DC/OS – больше чем PAAS, Никита Борзых (Express 42)Ontico
 
Containers in real world презентация
Containers in real world презентацияContainers in real world презентация
Containers in real world презентацияPavel Odintsov
 
Системы контроля версий
Системы контроля версийСистемы контроля версий
Системы контроля версийPavel Treshnikov
 
Непрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в ЯндексеНепрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в ЯндексеAndrey Kazarinov
 
Архитектура хранения фотографий в Badoo
Архитектура хранения фотографий в BadooАрхитектура хранения фотографий в Badoo
Архитектура хранения фотографий в BadooBadoo Development
 
Docker : что это, зачем, и как им пользоваться
Docker : что это, зачем, и как им пользоватьсяDocker : что это, зачем, и как им пользоваться
Docker : что это, зачем, и как им пользоватьсяСергей Ладыгин
 
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...Badoo Development
 
Кратчайшее введение в docker по-русски
Кратчайшее введение в docker по-русскиКратчайшее введение в docker по-русски
Кратчайшее введение в docker по-русскиOSLL
 
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел ТихомировРазвёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел ТихомировOpenVZ
 
Юрий Насретдинов-«Сбор логов в «облаке» в Badoo»
Юрий Насретдинов-«Сбор логов в «облаке» в Badoo»Юрий Насретдинов-«Сбор логов в «облаке» в Badoo»
Юрий Насретдинов-«Сбор логов в «облаке» в Badoo»Tanya Denisyuk
 
Building C++ Boost, and Boosting C++ Builds
Building C++ Boost, and Boosting C++ BuildsBuilding C++ Boost, and Boosting C++ Builds
Building C++ Boost, and Boosting C++ BuildsCEE-SEC(R)
 
07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервера07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервераRoman Brovko
 
05 - Web-технологии. Сетевые протоколы
05 - Web-технологии. Сетевые протоколы05 - Web-технологии. Сетевые протоколы
05 - Web-технологии. Сетевые протоколыRoman Brovko
 
Postgre Sql в веб приложениях иван золотухин
Postgre Sql в веб приложениях   иван золотухинPostgre Sql в веб приложениях   иван золотухин
Postgre Sql в веб приложениях иван золотухинMedia Gorod
 
Symantec Backup Exec vs Microsoft DPM (Russian)
Symantec Backup Exec vs Microsoft DPM (Russian)Symantec Backup Exec vs Microsoft DPM (Russian)
Symantec Backup Exec vs Microsoft DPM (Russian)hdablin
 

What's hot (20)

Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.
 
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»
Роман Иманкулов-«Быстрые и масштабируемые приложения с Sync API»
 
DC/OS – больше чем PAAS, Никита Борзых (Express 42)
DC/OS – больше чем PAAS, Никита Борзых (Express 42)DC/OS – больше чем PAAS, Никита Борзых (Express 42)
DC/OS – больше чем PAAS, Никита Борзых (Express 42)
 
Containers in real world презентация
Containers in real world презентацияContainers in real world презентация
Containers in real world презентация
 
Системы контроля версий
Системы контроля версийСистемы контроля версий
Системы контроля версий
 
Непрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в ЯндексеНепрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в Яндексе
 
Архитектура хранения фотографий в Badoo
Архитектура хранения фотографий в BadooАрхитектура хранения фотографий в Badoo
Архитектура хранения фотографий в Badoo
 
Git basis
Git basisGit basis
Git basis
 
Docker : что это, зачем, и как им пользоваться
Docker : что это, зачем, и как им пользоватьсяDocker : что это, зачем, и как им пользоваться
Docker : что это, зачем, и как им пользоваться
 
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
 
Кратчайшее введение в docker по-русски
Кратчайшее введение в docker по-русскиКратчайшее введение в docker по-русски
Кратчайшее введение в docker по-русски
 
Marrow
MarrowMarrow
Marrow
 
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел ТихомировРазвёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
 
Что такое Docker
Что такое DockerЧто такое Docker
Что такое Docker
 
Юрий Насретдинов-«Сбор логов в «облаке» в Badoo»
Юрий Насретдинов-«Сбор логов в «облаке» в Badoo»Юрий Насретдинов-«Сбор логов в «облаке» в Badoo»
Юрий Насретдинов-«Сбор логов в «облаке» в Badoo»
 
Building C++ Boost, and Boosting C++ Builds
Building C++ Boost, and Boosting C++ BuildsBuilding C++ Boost, and Boosting C++ Builds
Building C++ Boost, and Boosting C++ Builds
 
07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервера07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервера
 
05 - Web-технологии. Сетевые протоколы
05 - Web-технологии. Сетевые протоколы05 - Web-технологии. Сетевые протоколы
05 - Web-технологии. Сетевые протоколы
 
Postgre Sql в веб приложениях иван золотухин
Postgre Sql в веб приложениях   иван золотухинPostgre Sql в веб приложениях   иван золотухин
Postgre Sql в веб приложениях иван золотухин
 
Symantec Backup Exec vs Microsoft DPM (Russian)
Symantec Backup Exec vs Microsoft DPM (Russian)Symantec Backup Exec vs Microsoft DPM (Russian)
Symantec Backup Exec vs Microsoft DPM (Russian)
 

Similar to Mercurial

Scino: DVCS на примере Git
Scino: DVCS на примере GitScino: DVCS на примере Git
Scino: DVCS на примере GitSCINO
 
Controlul versiunilor
Controlul versiunilor Controlul versiunilor
Controlul versiunilor Dmitrii Stoian
 
Приемы Сontinuous Integration при разработке приложений на Caché
Приемы Сontinuous Integration при разработке приложений на CachéПриемы Сontinuous Integration при разработке приложений на Caché
Приемы Сontinuous Integration при разработке приложений на CachéInterSystems CEE
 
Caché github continuous intergration
Caché github continuous intergrationCaché github continuous intergration
Caché github continuous intergrationInterSystems
 
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Ontico
 
Основы работы с Git
Основы работы с GitОсновы работы с Git
Основы работы с GitDenis Latushkin
 
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)Ontico
 
Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in productionAnatoly Popov
 
системы контроля версий
системы контроля версийсистемы контроля версий
системы контроля версийDressTester
 
Управление облачной инфраструктурой
Управление облачной инфраструктуройУправление облачной инфраструктурой
Управление облачной инфраструктуройdddpaul
 
Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?Ruslan Sharipov
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 5
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 5Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 5
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 57bits
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeYehor Herasymchuk
 
Сергей Сергеев - Системы контроля версий
Сергей Сергеев - Системы контроля версийСергей Сергеев - Системы контроля версий
Сергей Сергеев - Системы контроля версийYandex
 
SETCON'18 - Vitali Fokin - Kubernetes 101
SETCON'18 - Vitali Fokin - Kubernetes 101SETCON'18 - Vitali Fokin - Kubernetes 101
SETCON'18 - Vitali Fokin - Kubernetes 101Nadzeya Pus
 
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...it-people
 
Инструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesИнструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesPositive Hack Days
 
Docker Containers orchestrators: Kubernetes vs. Swarm
Docker Containers orchestrators: Kubernetes vs. SwarmDocker Containers orchestrators: Kubernetes vs. Swarm
Docker Containers orchestrators: Kubernetes vs. SwarmDmitry Lazarenko
 
«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков
«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков
«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков2ГИС Технологии
 

Similar to Mercurial (20)

Scino: DVCS на примере Git
Scino: DVCS на примере GitScino: DVCS на примере Git
Scino: DVCS на примере Git
 
Controlul versiunilor
Controlul versiunilor Controlul versiunilor
Controlul versiunilor
 
Приемы Сontinuous Integration при разработке приложений на Caché
Приемы Сontinuous Integration при разработке приложений на CachéПриемы Сontinuous Integration при разработке приложений на Caché
Приемы Сontinuous Integration при разработке приложений на Caché
 
Caché github continuous intergration
Caché github continuous intergrationCaché github continuous intergration
Caché github continuous intergration
 
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
 
Основы работы с Git
Основы работы с GitОсновы работы с Git
Основы работы с Git
 
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
 
Git for you
Git for youGit for you
Git for you
 
Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in production
 
системы контроля версий
системы контроля версийсистемы контроля версий
системы контроля версий
 
Управление облачной инфраструктурой
Управление облачной инфраструктуройУправление облачной инфраструктурой
Управление облачной инфраструктурой
 
Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 5
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 5Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 5
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 5
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And Forge
 
Сергей Сергеев - Системы контроля версий
Сергей Сергеев - Системы контроля версийСергей Сергеев - Системы контроля версий
Сергей Сергеев - Системы контроля версий
 
SETCON'18 - Vitali Fokin - Kubernetes 101
SETCON'18 - Vitali Fokin - Kubernetes 101SETCON'18 - Vitali Fokin - Kubernetes 101
SETCON'18 - Vitali Fokin - Kubernetes 101
 
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
DUMP-2012 - Управление разработкой - "Опыт смены системы контроля версий" Кон...
 
Инструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesИнструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release Notes
 
Docker Containers orchestrators: Kubernetes vs. Swarm
Docker Containers orchestrators: Kubernetes vs. SwarmDocker Containers orchestrators: Kubernetes vs. Swarm
Docker Containers orchestrators: Kubernetes vs. Swarm
 
«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков
«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков
«GitHub Flow — немного сложнее, чем на бумаге», Александр Бирюков
 

More from GetDev.NET

Leap Motion - игрушка с заделом на будущее
Leap Motion - игрушка с заделом на будущееLeap Motion - игрушка с заделом на будущее
Leap Motion - игрушка с заделом на будущееGetDev.NET
 
Гирлянда для программистов
Гирлянда для программистовГирлянда для программистов
Гирлянда для программистовGetDev.NET
 
Mind Mapping, или как заставить свой мозг работать лучше
Mind Mapping, или как заставить свой мозг работать лучшеMind Mapping, или как заставить свой мозг работать лучше
Mind Mapping, или как заставить свой мозг работать лучшеGetDev.NET
 
Что нового в Visual Studio 2015
Что нового в Visual Studio 2015Что нового в Visual Studio 2015
Что нового в Visual Studio 2015GetDev.NET
 
Docker контейнерная революция
Docker контейнерная революцияDocker контейнерная революция
Docker контейнерная революцияGetDev.NET
 
Windows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиковWindows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиковGetDev.NET
 
PhoneGap для мобильного разработчика - глубокое погружение без ОЗК
PhoneGap для мобильного разработчика - глубокое погружение без ОЗКPhoneGap для мобильного разработчика - глубокое погружение без ОЗК
PhoneGap для мобильного разработчика - глубокое погружение без ОЗКGetDev.NET
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web APIGetDev.NET
 
Что нового в Visual Studio 2013
Что нового в Visual Studio 2013Что нового в Visual Studio 2013
Что нового в Visual Studio 2013GetDev.NET
 
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...GetDev.NET
 
Lego Mindstorms
Lego MindstormsLego Mindstorms
Lego MindstormsGetDev.NET
 
Особенности мобильной платформы Windows Phone 8
Особенности мобильной платформы Windows Phone 8Особенности мобильной платформы Windows Phone 8
Особенности мобильной платформы Windows Phone 8GetDev.NET
 
Async Javascript
Async JavascriptAsync Javascript
Async JavascriptGetDev.NET
 
XAML - язык разметки приложений
XAML - язык разметки приложенийXAML - язык разметки приложений
XAML - язык разметки приложенийGetDev.NET
 
Dynamic Language Runtime
Dynamic Language RuntimeDynamic Language Runtime
Dynamic Language RuntimeGetDev.NET
 
JavaScript: хороший тон клиентской разработки
JavaScript: хороший тон клиентской разработкиJavaScript: хороший тон клиентской разработки
JavaScript: хороший тон клиентской разработкиGetDev.NET
 
Roslyn - компилятор как сервис
Roslyn - компилятор как сервисRoslyn - компилятор как сервис
Roslyn - компилятор как сервисGetDev.NET
 

More from GetDev.NET (20)

Go
GoGo
Go
 
Leap Motion - игрушка с заделом на будущее
Leap Motion - игрушка с заделом на будущееLeap Motion - игрушка с заделом на будущее
Leap Motion - игрушка с заделом на будущее
 
Гирлянда для программистов
Гирлянда для программистовГирлянда для программистов
Гирлянда для программистов
 
Mind Mapping, или как заставить свой мозг работать лучше
Mind Mapping, или как заставить свой мозг работать лучшеMind Mapping, или как заставить свой мозг работать лучше
Mind Mapping, или как заставить свой мозг работать лучше
 
Что нового в Visual Studio 2015
Что нового в Visual Studio 2015Что нового в Visual Studio 2015
Что нового в Visual Studio 2015
 
Docker контейнерная революция
Docker контейнерная революцияDocker контейнерная революция
Docker контейнерная революция
 
Windows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиковWindows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиков
 
PhoneGap для мобильного разработчика - глубокое погружение без ОЗК
PhoneGap для мобильного разработчика - глубокое погружение без ОЗКPhoneGap для мобильного разработчика - глубокое погружение без ОЗК
PhoneGap для мобильного разработчика - глубокое погружение без ОЗК
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 
Что нового в Visual Studio 2013
Что нового в Visual Studio 2013Что нового в Visual Studio 2013
Что нового в Visual Studio 2013
 
AngularJS
AngularJSAngularJS
AngularJS
 
TypeScript
TypeScriptTypeScript
TypeScript
 
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
 
Lego Mindstorms
Lego MindstormsLego Mindstorms
Lego Mindstorms
 
Особенности мобильной платформы Windows Phone 8
Особенности мобильной платформы Windows Phone 8Особенности мобильной платформы Windows Phone 8
Особенности мобильной платформы Windows Phone 8
 
Async Javascript
Async JavascriptAsync Javascript
Async Javascript
 
XAML - язык разметки приложений
XAML - язык разметки приложенийXAML - язык разметки приложений
XAML - язык разметки приложений
 
Dynamic Language Runtime
Dynamic Language RuntimeDynamic Language Runtime
Dynamic Language Runtime
 
JavaScript: хороший тон клиентской разработки
JavaScript: хороший тон клиентской разработкиJavaScript: хороший тон клиентской разработки
JavaScript: хороший тон клиентской разработки
 
Roslyn - компилятор как сервис
Roslyn - компилятор как сервисRoslyn - компилятор как сервис
Roslyn - компилятор как сервис
 

Mercurial

  • 1. Mercurial – распределенная система управления версиями
  • 2. Системы управления версиями (VCS) • Централизованные (CVS, SVN, VSS, TFS, Perforce, Vault, …) • Распределенные (DVCS) (Git, Mercurial, Bazaar, …)
  • 3. Централизованные VCS Ann commit Sources update Bob update Репозиторий Рабочая копия
  • 4. Распределенные VCS Server ? pull commit push update Bob pull Ann commit update commit push update Репозиторий Рабочая копия
  • 5. Достоинства распределенных VCS 1. Можно продолжать работать, даже если нет возможности связаться с сервером (работа вне офиса, сервер недоступен…) 2. Разделение момента внесения кода в репозиторий и момента получения этого кода остальной командой 3. Положительные побочные эффекты: хорошая поддержка работы с ветвями
  • 6. Недостатки распределенных VCS 1. Более длительное обучение, смена мышления 2. Теперь у вас теперь намного больше способов прострелить себе ногу!!
  • 7. Mercurial • Initial release: апрель 2005 • Stable release: 2.0.1, декабрь 2011 • Free под лицензией GNU GPL v2 • Доступность на *nix, Windows, Mac OS • Доступность на Bitbucket, CodePlex, Google Code, SourceForge, ... • Возможность конвертации репозиториев CVS, Subversion, Perforce, Git, Bazaar… • Интеграция с Visual Studio, NetBeans, Eclipse • GUI: TortoiseHg, MacHg
  • 8. Mercurial в деле • Go programming language • Mozilla • NetBeans • OpenJDK • OpenOffice.org • Python • Symbian Platform • W3C • …
  • 9. Changeset. Набор изменений • Является атомарной единицей истории в репозитории • Фиксируется в репозитории при выполнении commit • При push и pull между репозиториями пересылаются фрагменты истории, т.е. наборы changeset’ов • Содержит: 1. Информацию об изменениях в файлах, но не конечные их версии 2. Имя автора, описание, время фиксации в репозитории 3. Имя ветви разработки
  • 10. История изменений 7: febd28ca9d94 6: 0c9b8a4d0ece 5: a7260c887e12 4: f74700da1dfc 3: 8f893b58f266 2: e0c28f5e936c 1: 0978b4a57360 0: c4daeac3e815
  • 11. Расположение в файловой системе Sources .hg Репозиторий Core Plugins Рабочая копия HowToBuild.txt
  • 12. Начало работы • Справка: hg help • Создание репозитория: hg init • Статус рабочей копии: hg status • Включить в следующий commit информацию о добавленных и удаленных файлах: hg addremove • Фиксация изменений: hg commit • Получение рабочей копии: hg update • Слияние: hg merge • История изменений: hg log
  • 14. Работа в команде • Клонирование репозитория: hg clone • Получение изменений: hg pull • Список изменений на получение: hg incoming • Отправка изменений: hg push • Список изменений на отправку: hg outgoing
  • 16. Материалы для изучения Официальный сайт: http://mercurial.selenic.com/ “Hg Init: a Mercurial tutorial” by Joel Spolsky: http://hginit.com/ “Mercurial: The Definitive Guide” by Bryan O'Sullivan: http://hgbook.red-bean.com/
  • 17. Спасибо за внимание Автор: Максим Терехов E-mail: terekhovm@gmail.com