Bazaar за пять минут
Содержание
- Bazaar за пять минут
- Введение
- Установка
- Представьтесь
- Начинаем контролировать версии файлов
- Вносим изменения в файлы
- Просматриваем журнал изменений
- Публикуем ветку через SFTP
- Публикация ветки на Launchpad
- Создаем собственную копию другой ветки
- Обновляем ветку изменениями из основной ветки
- Объединяем свои изменения с родительской веткой
- Узнать больше
Введение
Bazaar — это распределенная система контроля версий, которая упрощает совместную работу над программными проектами.
В течении следующих пяти минут, вы узнаете как начать контролировать версии ваших файлов, как вносить изменения, проверять вашу работу, публиковать её и отправлять для объединения с главной веткой проекта.
Если вы предпочитаете более подробное введение, обратитесь к разделу Узнать больше.
Установка
Это руководство не описывает как установить Bazaar, потому что обычно это очень легко. Инструкции по установке вы найдете тут:
- GNU/Linux: скорее всего Bazaar уже присутствует в вашем дистрибутиве GNU/Linux.
- Windows: инструкции по установке для Windows.
- Mac OS X: инструкции по установке для Mac OS X.
Для других платформ и для установки из исходных кодов, обратитесь к страницам Загрузка и Установка.
Представьтесь
Прежде чем начать работать, было бы неплохо сообщить Bazaar кто вы такой. В этом случае ваша работа будет корректно идентифицирована в истории ревизий.
Используя ваше имя и адрес электронной почты, вместо данных Васи Пупкина, наберите:
$ bzr whoami "Vasya Pupkin <[email protected]>"
В этот момент Bazaar создаст или исправит файл настроек, включив в него ваше имя и адрес электронной почты.
Теперь, проверьте правильно ли сохранены ваши имя и адрес:
$ bzr whoami Vasya Pupkin <[email protected]>
Начинаем контролировать версии файлов
Давайте создадим каталог и несколько файлов для использования с Bazaar:
$ mkdir myproject $ cd myproject $ mkdir subdirectory $ touch test1.txt test2.txt test3.txt subdirectory/test4.txt
Замечание для пользователей Windows: используйте Windows Explorer для создания ваших каталогов, затем нажимайте правую кнопку мыши в этих каталогах и выбирайте Новый файл, чтобы создать ваши файлы.
Теперь дадим Bazaar возможность инициализировать свои данные в каталоге вашего проекта:
$ bzr init
Если всё выглядит так, как будто ничего не случилось — не волнуйтесь. Bazaar создал ветку, в которой он будет хранить рабочие файлы и историю их изменений.
Следующий шаг — сказать Bazaar какие файлы вы хотите контролировать. Команда bzr add рекурсивно добавит все файлы в проект:
$ bzr add added subdirectory added test1.txt added test2.txt added test3.txt added subdirectory/test4.txt
Далее, нужно сохранить текущее состояние ваших файлов зафиксировав их в вашей ветке. Добавьте сообщение объясняющее зачем вы сделали фиксацию:
$ bzr commit -m "Импортируем файлы"
Т.к. Bazaar это распределенная система контроля версий, здесь нет необходимости соединяться с центральным сервером для выполнения фиксации. Вместо этого, Bazaar сохраняет вашу ветку и все её фиксации внутри каталога с которым вы работаете; обратите внимание на подкаталог .bzr.
Вносим изменения в файлы
Давайте изменим какой-либо файл и зафиксируем это изменение в вашей ветке.
Отредактируйте test1.txt в своем любимом редакторе и затем посмотрите на сделанные изменения:
$ bzr diff === modified file 'test1.txt' --- test1.txt 2007-10-08 17:56:14 +0000 +++ test1.txt 2007-10-08 17:46:22 +0000 @@ -0,0 +1,1 @@ +test test test
Зафиксируйте вашу работу в ветке Bazaar:
$ bzr commit -m "Добавлена первая строка текста" Committed revision 2.
Просматриваем журнал изменений
Вы можете увидеть историю вашей ветки просмотрев её журнал:
$ bzr log ------------------------------------------------------------ revno: 2 committer: Vasya Pupkin <[email protected]> branch nick: myproject timestamp: Mon 2007-10-08 17:56:14 +0000 message: Добавлена первая строка текста ------------------------------------------------------------ revno: 1 committer: Vasya Pupkin <[email protected]> branch nick: myproject timestamp: Mon 2006-10-08 17:46:22 +0000 message: Импортируем файлы
Публикуем ветку через SFTP
Есть несколько способов опубликовать вашу ветку. Если у вас уже есть SFTP сервер или вам несложно его настроить, вы можете опубликовать свою ветку через него.
В противном случае, переходите к следующему разделу, чтобы опубликовать ветку на Launchpad — бесплатном хостинге для Bazaar.
Предположим, что вы хотите опубликовать свою ветку на www.example.com/myproject:
$ bzr push --create-prefix sftp://[email protected]/~/public_html/myproject 2 revision(s) pushed.
Bazaar создаст каталог myproject на удаленном сервере и поместит в него вашу ветку.
Теперь любой желающий сможет создать свою собственную копию вашей ветки, выполнив:
$ bzr branch http://www.example.com/myproject
Замечание: чтобы использовать SFTP, может понадобиться установить paramiko и pyCrypto. За подробностями обращайтесь к http://bazaar-vcs.org/InstallationFaq.
Публикация ветки на Launchpad
Launchpad это набор инструментов для разработки и размещения проектов свободного программного обеспечения. Вы можете использовать его для публикации своей ветки.
Если у вас нет учетной записи Launchpad, следуйте руководству по получению учетной записи и зарегистрируйте SSH ключ в своей новой учетной записи.
Заменив vasya.pupkin на ваше имя пользователя Launchpad, выполните:
$ bzr push bzr+ssh://[email protected]/~vasya.pupkin/+junk/myproject
Замечание: +junk означает что ветка не связана с каким-либо проектом на Launchpad.
Теперь любой желающий сможет создать свою собственную копию вашей ветки, выполнив:
$ bzr branch http://bazaar.launchpad.net/~vasya.pupkin/+junk/myproject
Вы также сможете видеть информацию по вашей ветке, включая журнал изменений, по адресу https://code.launchpad.net/people/+me/+junk/myproject
Создаем собственную копию другой ветки
Чтобы работать с чьим-либо кодом, вы можете создать собственную копию чужой ветки. Давайте возьмем реальный пример — GTK интерфейс для Bazaar:
$ bzr branch http://bazaar.launchpad.net/~bzr/bzr-gtk/trunk bzr-gtk.vasya Branched 292 revision(s).
Bazaar загрузит все файлы и полный журнал изменений из основной ветки проекта bzr-gtk и создаст копию с именем bzr-gtk.vasya.
Теперь у вас есть собственная копия ветки и вы можете фиксировать изменения и с сетевым подключением и без него. Вы можете поделиться своей веткой в любое время, опубликовав ветку. И если команда разработчиков bzr-gtk захочет использовать вашу работу, Bazaar легко позволит им объединить вашу ветку обратно в их основную ветку.
Обновляем ветку изменениями из основной ветки
Пока вы фиксируете изменения в вашей ветке, другие люди, скорее всего, так же продолжают фиксировать код в родительской ветке.
Чтобы быть уверенным что ваша ветка содержит последние изменения, вам следует объединить родительскую ветку с вашей личной:
$ bzr merge Merging from saved parent location: http://bazaar.launchpad.net/~bzr/bzr-gtk/trunk All changes applied successfully.
Проверьте что изменилось:
$ bzr diff
Если изменения вас устраивают, вы можете зафиксировать их в своей ветке:
$ bzr commit -m "Изменения из основной ветки" Committed revision 295.
Объединяем свои изменения с родительской веткой
После того как вы поработали в своей ветке bzr-gtk, вы можете захотеть отправить ваши изменения для включения в проект. Простейший способ заключается в использовании директивы объединения.
Директива объединения — это машиночитаемый запрос на осуществление конкретного объединения. Обычно он содержит обзор изменений, которые планируется объединить. Также директива объединения содержит либо необходимые ревизии, либо указывает на ветку где они могут быть получены.
Заменив mycode.patch, создайте свою директиву объединения:
$ bzr send -o mycode.patch Using saved parent location: http://bazaar.launchpad.net/~bzr/bzr-gtk/trunk
Теперь вы можете отправить директиву объединения по электронной почте в проект bzr-gtk. Если разработчики bzr-gtk захотят, то смогут использовать эту директиву для включения вашей работы в основную ветку.
Узнать больше
Больше информации о Bazaar вы найдете в Руководстве пользователя Bazaar.
Чтобы узнать больше о Bazaar из командой строки:
$ bzr help
Чтобы узнать основные команды Bazaar:
$ bzr help commands
Чтобы узнать о теме или команде “foo”:
$ bzr help foo