Представляем Bazaar

Что такое Bazaar?

Bazaar - это инструмент помогающий людям сотрудничать. Он отслеживает изменения, которые вы и другие люди делают с группой файлов, (таких как исходный код программы) для того что бы дать вам снимок каждого этапа их эволюции. Используя эту информацию, Bazaar может без проблем объединить вашу работу с работой других людей.

Такие инструменты как Bazaar называются системами контроля версий (Version Control System (VCS)) и уже долгое время популярны среди разработчиков ПО. Легкость использования, гибкость и простота настройки Bazaar делают его идеальным не только для разработчиков ПО, но так же и для других групп, работающих совместно с файлами и документами, таких как технические писатели, Web-дизайнеры и переводчики.

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

Краткая история систем контроля версий

Инструменты для контроля версий на данный момент развиваются уже в течение нескольких десятилетий. Простыми словами можно описать 4 поколения таких инструментов:

  1. инструменты контроля версий файлов, например CSSC, RCS
  2. инструменты контроля дерева файлов - централизованный стиль, например CVS
  3. инструменты контроля дерева файлов - централизованный стиль, этап 2, например Subversion
  4. инструменты контроля дерева файлов - распределенный стиль, например Bazaar.

Дизайн и реализация Bazaar учитывает уроки полученные на каждом из этих этапов развития подобных инструментов. В частности, Bazaar аккуратно поддерживает и централизованную и распределенную модели контроля версий и таким образом вы можете менять модель работы (когда это имеет смысл) без необходимости смены инструмента.

Централизованная модель против распределенной

Многие традиционные инструменты контроля версий требуют наличия центрального сервера, который хранит историю изменений (или репозиторий) для дерева файлов. Что бы работать с файлами пользователю необходимо установить соединение с сервером и получить рабочую версию файлов. Таким образом пользователь получает рабочее дерево в котором он может работать. Для сохранения, или фиксации изменений пользователю нужен доступ к центральному серверу и он должен убедиться, что перед фиксацией он объединил свою работу с последней версией сохраненной на сервере. Такой подход известен как централизованная модель.

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

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

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

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

Для более детального взгляда на преимущества распределенных систем контроля версий по сравнению с централизованными смотрите http://wiki.bazaar.canonical.com/BzrWhy.

Ключевые особенности Bazaar

Хотя Bazaar не единственная распределенная система контроля версий, она имеет некоторые значимые преимущества, которые делают ее прекрасным выбором для многих команд и сообществ. Описание этих особенностей и сравнение с другими системами контроля версий может быть найдено на Wiki Bazaar - http://wiki.bazaar.canonical.com.

Из большинства особенностей, одна требует особого упоминания: Bazaar - это полностью свободное ПО написанное на языке Python. Это упрощает сотрудничество для внесения улучшений. Если вы хотите помочь, обратите внимание на http://wiki.bazaar.canonical.com/BzrSupport.

Продолжаем изучение

Это руководство представляет из себя легкое для чтения введение в Bazaar и описание его использования. Всем пользователям рекомендуется прочесть хотя бы окончание этой главы, так как:

  • она описывает основные концепции, которые нужно знать пользователям
  • она описывает некоторые популярные пути использования Bazaar для сотрудничества.

Главы 2-6 более детально описывают использование Bazaar для выполнения различных задач. Большинству пользователей рекомендуется прочесть их одну за другой сразу после начала использования Bazaar. Глава 7 и дальше содержат дополнительную информацию, которая поможет получить максимум от Bazaar после того как понятны основные функции. Этот материал может быть прочитан когда потребуется и в любом порядке.

Если вы уже хорошо знакомы с другими системами контроля версий, вы возможно захотите вникнуть скорее через чтение следующих документов:

Плюс к этому справка на сайте и Справка по Bazaar предоставляют все детали по доступным командам и опциям.

Мы надеемся, что вам понравится это руководство. Если у вас есть пожелания по улучшению документации Bazaar вы можете написать в список рассылки bazaar@lists.canonical.com.