SlideShare a Scribd company logo
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

PPTX
Первые шаги с RabbitMQ
PPTX
Применяем Ansible
PDF
Депрокрастинируем Docker: контейнеры здесь и сейчас
PDF
Управление контейнерами в облаках
ODP
Введение в Docker
PDF
Docker for JS people
PDF
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Первые шаги с RabbitMQ
Применяем Ansible
Депрокрастинируем Docker: контейнеры здесь и сейчас
Управление контейнерами в облаках
Введение в Docker
Docker for JS people
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup

What's hot (20)

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

Similar to Mercurial (20)

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

More from GetDev.NET (20)

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