понедельник, 23 февраля 2009 г.

Bazaar: зачем и почему

Сегодня о распределенных системах контроля версий слышали и знают многие. Несмотря на то, что svn по-прежнему лидирует и все еще является наиболее часто используемой системой контроля версий (особенно в корпоративном секторе), однако распределенные системы нового поколения продолжают набирать популярность.

К распределенным системам нового поколения относят Git (Гит), Mercurial (Меркуриал) и Bazaar (Базар). Все три системы появились на свет более-менее в одно время (конец 2004 – начало 2005 года). Список современных распределенных систем контроля версий также дополняют Darcs и Monotone.

В распределенных системах каждая копия репозитория является самодостаточной сущностью: пользователь может производить все операции над файлами или историей изменений без необходимости подключаться к некоторому центральному серверу. В дополнение к этому пользователь может свободно объединять изменения из разных копий одного репозитория. Вместе с тем распределенные системы могут поддерживать и централизованную модель работы с использованием некоторого центрального сервера, что позволяет назвать их надмножеством централизованных систем контроля версий.

Развитию распределенных систем контроля версий способствуют два основных фактора:
  • бурное развитие глобальной сети интернет
  • наличие доступных по цене переносных компьютеров (ноутбуков и нетбуков)
Первый фактор способствует образованию множества географически распределенных команд, работающих над одним проектом; в первую очередь это касается проектов с открытым кодом (Open source projects). Второй фактор позволяет разработчикам использовать долгие путешествия (поезд, самолет) для того, чтобы продолжать работать над своими проектами. Поскольку полная копия репозитория всегда доступна локально (на жестком диске компьютера разработчика) и практически все операции можно делать без соединения с сервером, то это с одной стороны позволяет достичь более высокой скорости работы, а с другой стороны работать в условиях отсутствия подключения к сети.

Все современные распределенные системы контроля версий имеют свои достоинства и недостатки. Поэтому у каждой системы есть свой круг приверженцев. Выбрать систему, наиболее полно удовлетворяющую вашим требованиям и привычкам, может оказаться нелегко. В любом случае надо будет поработать с одной-двумя выбранными системами, чтобы увидеть их в действии и оценить степень пригодности.

Гит и Меркуриал изначально создавались для работы над ядром операционной системы Linux (Линукс), поэтому одним из главных требований для них была возможность адекватной работы с набором файлов с исходными кодами Линукс. Одной из главных целей при этом стало достижение максимальной скорости работы с огромным количеством файлов.

Базар же изначально проектировался как замена распределенной системы контроля версий первого поколения (GNU Arch) и главной целью было создание удобного и дружественного интерфейса пользователя. Оптимизацией скорости работы этой системы начали заниматься несколько позднее, используя в качестве наглядного примера Гит и Меркуриал. В то же время в Базаре изначально большое внимание уделяется идеям расширяемости и обратной совместимости. Одной из ключевых особенностей Базара является привязка уникального идентификатора к каждому версионированному файлу, каталогу или символической ссылке, что позволяет легко и эффективно отслеживать переименования файлов и каталогов. В своем арсенале Базар имеет поддержку для множества различных моделей работы (от полностью распределенной до централизованной), Базар имеет поддержку для работы с репозиториями через множество различных протоколов (локальный файловый доступ, http/https, sftp, ftp, специальный эффективный bzr-протокол). Все это делает Базар очень гибкой системой, способной легко адаптироваться к различным требованиям. Но в то же время эта гибкость может озадачить начинающих пользователей, поскольку требует внимательного изучения руководства пользователя.

В последующих статьях обязательно будет рассказано о разных аспектах использования Базара.
Если же у вас появятся конкретные вопросы по использованию Базара, вы всегда можете задать их в дискуссионной группе ru_bzr.

Комментариев нет:

Отправить комментарий