Mercurial

1,399 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,399
On SlideShare
0
From Embeds
0
Number of Embeds
473
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Mercurial

  1. 1. Mercurial –распределенная система управления версиями
  2. 2. Системы управления версиями (VCS)• Централизованные (CVS, SVN, VSS, TFS, Perforce, Vault, …)• Распределенные (DVCS) (Git, Mercurial, Bazaar, …)
  3. 3. Централизованные VCSAnn commit Sources updateBob update Репозиторий Рабочая копия
  4. 4. Распределенные VCS Server ? pull commit push update Bob pullAnn commit update commit push update Репозиторий Рабочая копия
  5. 5. Достоинства распределенных VCS1. Можно продолжать работать, даже если нет возможности связаться с сервером (работа вне офиса, сервер недоступен…)2. Разделение момента внесения кода в репозиторий и момента получения этого кода остальной командой3. Положительные побочные эффекты: хорошая поддержка работы с ветвями
  6. 6. Недостатки распределенных VCS1. Более длительное обучение, смена мышления2. Теперь у вас теперь намного больше способов прострелить себе ногу!!
  7. 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. 8. Mercurial в деле• Go programming language• Mozilla• NetBeans• OpenJDK• OpenOffice.org• Python• Symbian Platform• W3C• …
  9. 9. Changeset. Набор изменений• Является атомарной единицей истории в репозитории• Фиксируется в репозитории при выполнении commit• При push и pull между репозиториями пересылаются фрагменты истории, т.е. наборы changeset’ов• Содержит: 1. Информацию об изменениях в файлах, но не конечные их версии 2. Имя автора, описание, время фиксации в репозитории 3. Имя ветви разработки
  10. 10. История изменений 7: febd28ca9d94 6: 0c9b8a4d0ece 5: a7260c887e12 4: f74700da1dfc3: 8f893b58f2662: e0c28f5e936c 1: 0978b4a57360 0: c4daeac3e815
  11. 11. Расположение в файловой системе Sources .hg Репозиторий Core Plugins Рабочая копия HowToBuild.txt
  12. 12. Начало работы• Справка: hg help• Создание репозитория: hg init• Статус рабочей копии: hg status• Включить в следующий commit информацию о добавленных и удаленных файлах: hg addremove• Фиксация изменений: hg commit• Получение рабочей копии: hg update• Слияние: hg merge• История изменений: hg log
  13. 13. Практика
  14. 14. Работа в команде• Клонирование репозитория: hg clone• Получение изменений: hg pull• Список изменений на получение: hg incoming• Отправка изменений: hg push• Список изменений на отправку: hg outgoing
  15. 15. Практика
  16. 16. Материалы для изученияОфициальный сайт:http://mercurial.selenic.com/“Hg Init: a Mercurial tutorial” by Joel Spolsky:http://hginit.com/“Mercurial: The Definitive Guide” by Bryan OSullivan:http://hgbook.red-bean.com/
  17. 17. Спасибо за вниманиеАвтор: Максим ТереховE-mail: terekhovm@gmail.com

×