GNU Bazaar — различия между версиями

Материал из Национальной библиотеки им. Н. Э. Баумана
(История)
м (Оси)
Строка 30: Строка 30:
 
Компания задумывала использовать продукт Bazaar, как стенд для тестирования функций, которые позже будут интегрированы в ПО Baz. Но уже в середине 2005 года большинство разработчиков сфокусировалось на разработке продукта Bazaar как независимого, и работа над Baz прекратилась.
 
Компания задумывала использовать продукт Bazaar, как стенд для тестирования функций, которые позже будут интегрированы в ПО Baz. Но уже в середине 2005 года большинство разработчиков сфокусировалось на разработке продукта Bazaar как независимого, и работа над Baz прекратилась.
  
==Системные требования?==
+
==Поддерживаемые ОС==
Bazaar runs on Windows, Ubuntu, Debian, SUSE, Fedora, OS X, FreeBSD, Solaris, Gentoo, and more.
+
* Windows,  
 
+
* Ubuntu,  
 +
* Debian,
 +
* SUSE,  
 +
*Fedora,  
 +
* OS X,  
 +
* FreeBSD,  
 +
* Solaris,  
 +
* Gentoo,  
 +
и другие.
  
 
==Основные концепции==
 
==Основные концепции==

Версия 00:53, 24 января 2017

Twitter, Inc.
Bazaar-logo.png
Type Public
Traded as GNU GPL 2
Founded 14 December 2007 года; 14 years ago (2007-12-14)
Area served Worldwide
Industry VCS (Version Control System)
Website bazaar.canonical.com
Written in Python, Pyrex, Си
Launched 14 December 2007 года; 14 years ago (2007-12-14)
Current status Active


Bazaar (ранее известная как Bazaar-NG, имя утилиты командной строки bzr) — распределённая система управления версиями, спонсор разработки которой фирма Canonical Ltd.. Система Bazaar разработана с целью облегчить работу над развитием свободных и открытых проектов для всех желающих.


Возможности

История

Название «Bazaar» впервые было использовано в проекте GNU arch. Сейчас эту версию называют Baz, чтобы не путать с современной версией ПО Bazaar. ПО Baz впервые появилось в октябре 2004 года. Продукт был разработан Робертом Коллинзом – сотрудником компании Canonical. Он работал над этим продуктом до 2005 года, пока не вышел новый проект Bazaar-NG (текущая версия). В феврале 2005 года компания Canonical наняла нового разработчика – Мартина Пула, который начал разработку новой версии Bazaar. С самого начала, продукт Bazaar задумывался, как продукт отличный от GNU и Baz. Он имеет совсем другой набор команд, код и дизайн. Компания задумывала использовать продукт Bazaar, как стенд для тестирования функций, которые позже будут интегрированы в ПО Baz. Но уже в середине 2005 года большинство разработчиков сфокусировалось на разработке продукта Bazaar как независимого, и работа над Baz прекратилась.

Поддерживаемые ОС

  • Windows,
  • Ubuntu,
  • Debian,
  • SUSE,
  • Fedora,
  • OS X,
  • FreeBSD,
  • Solaris,
  • Gentoo,

и другие.

Основные концепции

Ревизия — это сохраненное состояние файлов и директорий, включая их содержимое и иерархию в заданный момент времени. С ревизией также связана мета-информация, например: автор изменения, дата изменения, комментарий связанный с изменением, родительские ревизии от которых произведена данная ревизия;

После создания, ревизии не меняются и могут быть идентифицированы глобально уникальным номером ревизии (revision-id), например таким: pqm@pqm.ubuntu.com-20071129184101-u9506rihe4zbzyyz Идентификаторы ревизий создаются в момент фиксации (commit) изменений, или в момент импорта ревизий из других систем. Идентификаторы ревизий необходимы для функционирования системы, но вряд ли кто-то сможет использовать идентификатор такого типа в разговоре. Специально для упрощения идентификации ревизий разработаны специфичные для ветки номера ревизий.

Номера ревизий генерируются «на лету» в момент исполнения команд и представляют из себя последовательно увеличивающийся номер. Таким образом первая ревизия имеет номер 1, следующая за ней, более поздняя, ревизия - номер 2 и так далее. При объединении изменений с других веток, номер ревизии представляется тремя числами, разделенными точками:

  1. Номер ревизии для данной ветки, от которой были произведены объединенные изменения;
  2. Порядковый номер (счетчик) объединенной ветки. Так как объединение может затрагивать сразу несколько веток, этот номер служит их счетчиком;
  3. Порядковый номер ревизии с момента создания объединяемой ветки;
  • Пример: 3112.1.5

Рабочее дерево — это директория под контролем версий содержащий файлы, которые может редактировать пользователь. Рабочее дерево ассоциировано с веткой. Многие из команд Bazaar используют рабочее дерево для своей работы. Например, команда commit (зафиксировать изменения) создает новую ревизию на основе текущего состояния рабочего дерева.

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

Репозиторий — это хранилище ревизий. Обычно, ветка имеет свой собственный репозиторий, но также несколько веток могут разделять один репозиторий, что бы уменьшить используемое ветками место на диске.

Такое разделение концепций позволяет более гибко использовать Bazaar, в том числе и как централизованную систему.

2 набора сценариев:

  1. Разделяемые репозитории (англ. Shared repositories) — в этом случае рабочее дерево и ветка находятся в одной директории, но репозиторий находится на одну директорию выше, что позволяет хранить информацию о ревизиях только в одном месте. Такой сценарий позволяет не тратить место на полные копии ревизий, если ветки, находящиеся под репозиторием отличаются незначительно, например, относятся к одному проекту.
  2. Легковесные рабочие копии' (англ. Lightweight checkouts) — ветка и рабочее дерево находятся в разных местах. Этот сценарий похож на использование централизованной системы контроля версий, когда удаленный репозиторий хранит всю информацию о ревизиях, а рабочая копия представляет из себя только рабочие файлы и директории.


Основные отличия от других VCS

  • Bazaar использует концепцию основной линии разработки. Т.е. можно визуально отделить ревизии созданные на вашей ветке от ревизий созданных на объединенных ветках. В случае Git, или Mercurial ревизии созданные на объединенных ветках просто сольются в единый поток с ревизиями созданными на вашей ветке.
  • Каждая ветка в Bazaar хранится в отдельной директории (по сравнению с переключением веток в одной директории);
  • С отдельными ветками можно работать стандартными средствами операционной системы;
  • Bazaar может работать и в централизованном стиле (почти как CVS или SVN). Используйте команды bzr co, bzr up при централизованной работе, bzr pull, bzr push, bzr merge - при децентрализованной и bzr bind, bzr unbind для переключения между стилями работы.


Ссылки