Bazaar (ранее известная как Bazaar-NG, имя утилиты командной строки bzr) — распределённая система управления версиями, разработка которой спонсируется фирмой Canonical. Система Bazaar разработана с целью облегчить работу над развитием свободных и открытых проектов для всех желающих.
Команда разработчиков фокусируется на том, чтобы сделать систему лёгкой в использовании, но при этом точной в деталях и очень гибкой, подстраиваемой под конкретные нужды пользователей.[4] Также большое внимание уделяется вопросам работы со множеством веток и их последующим объединением.[5][6] Bazaar может использоваться как одним разработчиком для работы над множеством локальных веток, так и группой разработчиков, совместно работающих в сети.
Система контроля версий Bazaar написана на языке программирования Python. Существуют установочные пакеты для основных дистрибутивов Linux, инсталляторы для Mac OS X и MS Windows. Bazaar — это свободное программное обеспечение, в настоящее время является частью проекта GNU.[7][8]
В 2017 году разработчиками было создано ответвление под именем Breezy[англ.]* с целью перенести код с Python 2 на Python 3, удалить старую логику совместимости с целью улучшить кодовую базу, а также устранить необходимость лицензионного соглашения с Canonical.[9]
Команды Bazaar очень похожи на команды, используемые в CVS или SVN. Для создания и поддержки нового проекта без использования специального сервера с репозиторием пользователю достаточно запустить команду bzr init в том каталоге, который нужно поместить под контроль версий.[10]
В отличие от чисто распределённых систем контроля версий, которые не используют центральный сервер, Bazaar поддерживает работу как с сервером так и без него. Возможно даже использовать оба метода одновременно для одного и того же проекта. Сайты Launchpad и SourceForge предлагают свободный хостинг для проектов, которые используют Bazaar.
Bazaar поддерживает работу напрямую с некоторыми другими системами контроля версий.[11] Пользователи могут создавать новые ветки на основе репозиториев других систем (таких как Subversion или Git), делать локальные изменения и фиксировать их в Bazaar-ветке, и затем отправлять свои изменения назад в оригинальный репозиторий. Bazaar поддерживает базовые операции с Subversion (требуется плагин bzr-svn)[12], а также с Git (требуется плагин bzr-git)[13] Также начата работа над поддержкой Mercurial[14]. Плагин bzr-hg умеет пока немногое, однако его функций достаточно, чтобы отобразить историю ревизий в графическом виде.
Bazaar поддерживает полный набор символов Unicode в именах файлов. Система также позволяет использовать Unicode для составления комментариев к ревизиям, в именах авторов изменений и т. д.
Bazaar используется как при работе над некоторыми открытыми проектами, так и рядом коммерческих организаций[16]. Список наиболее известных открытых проектов, которые используют Bazaar, включает в себя:
↑Vernooij, Jelmer; John Meinel, Olad Conradi, Martin Pool, Wouter Van Heyst, Aaron Bentley.: BzrForeignBranches (неопр.) (15 июня 2007). Дата обращения: 21 июня 2007. Архивировано из оригинала 28 марта 2012 года.
↑Vernooij, Jelmer; Mark Lee, Neil Martinsen-Burrell, Robert Collins, Alexandre Vassalotti, Stijn Hoop.: BzrForeignBranches/Subversion (неопр.) (7 июня 2007). Дата обращения: 21 июня 2007. Архивировано из оригинала 28 марта 2012 года.