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/