GNU Bazaar

Материал из Национальной библиотеки им. Н. Э. Баумана
Версия от 07:44, 29 декабря 2016; anna trembitskaya (обсуждение | вклад) (Новая страница: «{{Infobox dot-com company | name = Twitter, Inc. | logo = bazaar-logo.png | logo size = 100px | collapsible = yes…»)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
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 runs on Windows, Ubuntu, Debian, SUSE, Fedora, OS X, FreeBSD, Solaris, Gentoo, and more.


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

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

После создания, ревизии не меняются и могут быть идентифицированы глобально уникальным номером ревизии (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 для переключения между стилями работы.


Ссылки