mercurial
TRANSCRIPT
![Page 1: Mercurial](https://reader036.vdocuments.site/reader036/viewer/2022082702/555e1bb1d8b42a9e188b599a/html5/thumbnails/1.jpg)
Mercurial –распределенная система управления
версиями
![Page 2: Mercurial](https://reader036.vdocuments.site/reader036/viewer/2022082702/555e1bb1d8b42a9e188b599a/html5/thumbnails/2.jpg)
Системы управления версиями (VCS)
• Централизованные(CVS, SVN, VSS, TFS, Perforce, Vault, …)
• Распределенные (DVCS)(Git, Mercurial, Bazaar, …)
![Page 3: Mercurial](https://reader036.vdocuments.site/reader036/viewer/2022082702/555e1bb1d8b42a9e188b599a/html5/thumbnails/3.jpg)
Централизованные VCS
commit
update
Репозиторий Рабочая копия
update
\\Ann
\\Bob
\\Sources
Рабочая копия
![Page 4: Mercurial](https://reader036.vdocuments.site/reader036/viewer/2022082702/555e1bb1d8b42a9e188b599a/html5/thumbnails/4.jpg)
Распределенные VCS
Репозиторий Рабочая копия
commitupdate
commitupdate
commitupdate
pull
push
pull
\\Bob
\\Ann
push
\\Server ?
![Page 5: Mercurial](https://reader036.vdocuments.site/reader036/viewer/2022082702/555e1bb1d8b42a9e188b599a/html5/thumbnails/5.jpg)
Достоинства распределенных VCS
1. Можно продолжать работать, даже если нет возможности связаться с сервером (работа вне офиса, сервер недоступен…)
2. Разделение момента внесения кода в репозиторий и момента получения этого кода остальной командой
3. Положительные побочные эффекты: хорошая поддержка работы с ветвями
![Page 6: Mercurial](https://reader036.vdocuments.site/reader036/viewer/2022082702/555e1bb1d8b42a9e188b599a/html5/thumbnails/6.jpg)
Недостатки распределенных VCS
1. Более длительное обучение, смена мышления2. Теперь у вас теперь намного больше способов
прострелить себе ногу!!
![Page 7: Mercurial](https://reader036.vdocuments.site/reader036/viewer/2022082702/555e1bb1d8b42a9e188b599a/html5/thumbnails/7.jpg)
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
![Page 8: Mercurial](https://reader036.vdocuments.site/reader036/viewer/2022082702/555e1bb1d8b42a9e188b599a/html5/thumbnails/8.jpg)
Mercurial в деле
• Go programming language• Mozilla• NetBeans• OpenJDK• OpenOffice.org• Python• Symbian Platform• W3C• …
![Page 9: Mercurial](https://reader036.vdocuments.site/reader036/viewer/2022082702/555e1bb1d8b42a9e188b599a/html5/thumbnails/9.jpg)
Changeset. Набор изменений
• Является атомарной единицей истории в репозитории• Фиксируется в репозитории при выполнении commit• При push и pull между репозиториями пересылаются
фрагменты истории, т.е. наборы changeset’ов• Содержит:
1. Информацию об изменениях в файлах, но не конечные их версии
2. Имя автора, описание, время фиксации в репозитории3. Имя ветви разработки
![Page 10: Mercurial](https://reader036.vdocuments.site/reader036/viewer/2022082702/555e1bb1d8b42a9e188b599a/html5/thumbnails/10.jpg)
История изменений
0: c4daeac3e815
1: 0978b4a57360
2: e0c28f5e936c
3: 8f893b58f266
4: f74700da1dfc
5: a7260c887e12
6: 0c9b8a4d0ece
7: febd28ca9d94
![Page 11: Mercurial](https://reader036.vdocuments.site/reader036/viewer/2022082702/555e1bb1d8b42a9e188b599a/html5/thumbnails/11.jpg)
Расположение в файловой системе
Репозиторий
Рабочая копия
Sources
.hg
Core
Plugins
HowToBuild.txt
![Page 12: Mercurial](https://reader036.vdocuments.site/reader036/viewer/2022082702/555e1bb1d8b42a9e188b599a/html5/thumbnails/12.jpg)
Начало работы
• Справка: hg help• Создание репозитория: hg init• Статус рабочей копии: hg status• Включить в следующий commit информацию о
добавленных и удаленных файлах: hg addremove• Фиксация изменений: hg commit• Получение рабочей копии: hg update• Слияние: hg merge• История изменений: hg log
![Page 13: Mercurial](https://reader036.vdocuments.site/reader036/viewer/2022082702/555e1bb1d8b42a9e188b599a/html5/thumbnails/13.jpg)
Практика
![Page 14: Mercurial](https://reader036.vdocuments.site/reader036/viewer/2022082702/555e1bb1d8b42a9e188b599a/html5/thumbnails/14.jpg)
Работа в команде
• Клонирование репозитория: hg clone• Получение изменений: hg pull• Список изменений на получение: hg incoming• Отправка изменений: hg push• Список изменений на отправку: hg outgoing
![Page 15: Mercurial](https://reader036.vdocuments.site/reader036/viewer/2022082702/555e1bb1d8b42a9e188b599a/html5/thumbnails/15.jpg)
Практика
![Page 16: Mercurial](https://reader036.vdocuments.site/reader036/viewer/2022082702/555e1bb1d8b42a9e188b599a/html5/thumbnails/16.jpg)
Материалы для изучения
Официальный сайт: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/