- Оказывается, на официальном сайте лежит официальный русскоязычный туториал.
- При установке mercurial ubuntu удалила bazaar. С горя? :-)
- Локальный репозиторий mercurial это и есть working copy. Только check in (commit), как и в других системах, надо делать руками.
Соответственно, если почаще делать check in, то подробная история будет легко автоматом сливать изменения. - Mercurial очень шустро работает. Там, где svn на простых проектах работал пару секунд, mercurial дает мгновенный отклик.
- Плагин для Eclipse у меня в конце концов заработал. Но из командной строки все делается проще и понятнее.
Показаны сообщения с ярлыком vcs. Показать все сообщения
Показаны сообщения с ярлыком vcs. Показать все сообщения
пятница, 11 марта 2011 г.
mercurial - второй взгляд
Продолжаю разбираться с mercurial. Впечатления:
среда, 9 марта 2011 г.
Начал читать про mercurial
Начал читать про mercurial. Основные заинтересовавшие меня моменты.
В итоге достаточно легко делать штуки, от которых разработчики, использующие SVN или TFS просто шарахаются:
- Centralized VCS (CVCS): Два пользователя заливают одни и те же файлы в репозиторий. Первый просто заливает, второй делает merge. Его личные изменения нигде не сохраняются.
Distributed VCS (DVCS): все индивидуальные изменения сохраняются в виде отдельных ревизий. - Можно дать полноценные ревизии коллеге (в специальном архиве - bundle), не выкладывая их в центральный репозиторий (самое интересное, что bundle для системы выглядит как обычный read-only репозиторий, его не надо как-то хитро распаковывать). В свою очередь, коллега может, например, сделав Code review, уже сам закинуть эти ревизии в центральный репозиторий.
- Нельзя быстро порушить систему, тупо убив центральный репозиторий.
- Можно парой команд получить список ревизий, которые не приняты сверху в свой клон репозитория и наоборот - которые не отправлены наверх.
- Можно посмотреть граф ревизий (кто для кого является родительской).
- В отличие от TFS есть полноценный откат ревизии с нормальным сохранением истории (что делается именно откат).
- Есть grep, который ищет по всем файлам и всем ревизиям (можно наложить фильтры, чтобы искать не по всем).
- Теги хранятся не в
мифическихметаданных, а обычным файликом (с поддержкой версионности). Причем могут быть локальные (только для своего репозитория) и глобальные. - Нет встроенной утилиты для слияния (кто не любит ручками ставить meld, ediff, winmerge и т.п., будут плакать).
- Нельзя задать имена для веток в графе ревизий репозитория (named branch). Хотя здесь не до конца разобрался, надо читать дальше и пробовать.
- Для команд можно задавать алиасы (чтобы не писать большую портянку).
- Есть готовая команда для поиска багов (и прочей лажи) по ревизиям методом половинного деления.
- Можно автоматом слать патчи и/или бандлы по почте.
- Есть встроенные инструменты для фиксации отдельных изменений (отдельными ревизиями) в большом файле.
- Есть интерфейсы к веб-серверу и Trac'у.
- Для категорических противников командной строки есть GUI-клиент (TortoiseHg) и интеграция с IDE (Eclipse, IntelliJ IDEA, Visual Studio).
- Есть нормальная поддержка патчей на уровне системы (они не будут прятаться в обычных ревизиях, а могут развиваться вместе с репозиторием).
В итоге достаточно легко делать штуки, от которых разработчики, использующие SVN или TFS просто шарахаются:
- заводить отдельную ветку (репозиторий) на фичу;
- дать разработчикам выкладывать код в репозиторий "testing", а из него в "stable" - только тестерам.
Подписаться на:
Сообщения (Atom)