Представляем 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`_ предоставляют все детали
по доступным командам и опциям.

.. _Bazaar за пять минут: ../mini-tutorial/index.html
.. _Bazaar. Карточка быстрого старта: ../quick-reference/quick-start-summary.svg
.. _Справка по Bazaar: ../../en/user-reference/bzr_man.html

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