11
Bazaar |--| это распределенная система контроля версий, которая упрощает
12
совместную работу над программными проектами.
14
В течении следующих пяти минут, вы узнаете как начать контролировать версии
15
ваших файлов, как вносить изменения, проверять вашу работу, публиковать её и
16
отправлять для объединения с главной веткой проекта.
18
Если вы предпочитаете более подробное введение, обратитесь к разделу
24
Это руководство не описывает как установить Bazaar, потому что обычно
25
это очень легко. Инструкции по установке вы найдете тут:
27
- **GNU/Linux:** скорее всего Bazaar уже присутствует в вашем дистрибутиве GNU/Linux.
28
- **Windows:** `инструкции по установке для Windows`_.
29
- **Mac OS X:** `инструкции по установке для Mac OS X`_.
31
Для других платформ и для установки из исходных кодов, обратитесь к страницам
32
Загрузка_ и Установка_.
34
.. _инструкции по установке для Windows: http://bazaar-vcs.org/WindowsDownloads
35
.. _инструкции по установке для Mac OS X: http://bazaar-vcs.org/MacOSXBundle
36
.. _Загрузка: http://bazaar-vcs.org/Download
37
.. _Установка: http://bazaar-vcs.org/InstallationFaq
42
Прежде чем начать работать, было бы неплохо сообщить Bazaar кто вы такой.
43
В этом случае ваша работа будет корректно идентифицирована в истории ревизий.
45
Используя ваше имя и адрес электронной почты, вместо данных Васи Пупкина,
48
$ bzr whoami "Vasya Pupkin <vasya.pupkin@mail.ru>"
50
В этот момент Bazaar создаст или исправит файл настроек, включив в него ваше
51
имя и адрес электронной почты.
53
Теперь, проверьте правильно ли сохранены ваши имя и адрес::
56
Vasya Pupkin <vasya.pupkin@mail.ru>
59
Начинаем контролировать версии файлов
60
=====================================
62
Давайте создадим каталог и несколько файлов для использования с Bazaar::
67
$ touch test1.txt test2.txt test3.txt subdirectory/test4.txt
69
**Замечание для пользователей Windows:** используйте Windows Explorer
70
для создания ваших каталогов, затем нажимайте правую кнопку мыши
71
в этих каталогах и выбирайте ``Новый файл``, чтобы создать ваши файлы.
73
Теперь дадим Bazaar возможность инициализировать свои данные в каталоге вашего
78
Если всё выглядит так, как будто ничего не случилось |--| не волнуйтесь. Bazaar
79
создал ветку_, в которой он будет хранить рабочие файлы и историю их изменений.
81
.. _ветку: http://bazaar-vcs.org/Branch
83
Следующий шаг |--| сказать Bazaar какие файлы вы хотите контролировать. Команда
84
``bzr add`` рекурсивно добавит все файлы в проект::
91
added subdirectory/test4.txt
93
Далее, нужно сохранить текущее состояние ваших файлов зафиксировав их в вашей
94
ветке. Добавьте сообщение объясняющее зачем вы сделали фиксацию::
96
$ bzr commit -m "Импортируем файлы"
98
Т.к. Bazaar это распределенная система контроля версий, здесь нет необходимости
99
соединяться с центральным сервером для выполнения фиксации. Вместо этого,
100
Bazaar сохраняет вашу ветку и все её фиксации внутри каталога с которым вы
101
работаете; обратите внимание на подкаталог ``.bzr``.
104
Вносим изменения в файлы
105
========================
107
Давайте изменим какой-либо файл и зафиксируем это изменение в вашей ветке.
109
Отредактируйте ``test1.txt`` в своем любимом редакторе и затем посмотрите на
110
сделанные изменения::
113
=== modified file 'test1.txt'
114
--- test1.txt 2007-10-08 17:56:14 +0000
115
+++ test1.txt 2007-10-08 17:46:22 +0000
119
Зафиксируйте вашу работу в ветке Bazaar::
121
$ bzr commit -m "Добавлена первая строка текста"
122
Committed revision 2.
125
Просматриваем журнал изменений
126
==============================
128
Вы можете увидеть историю вашей ветки просмотрев её журнал::
131
------------------------------------------------------------
133
committer: Vasya Pupkin <vasya.pupkin@mail.ru>
134
branch nick: myproject
135
timestamp: Mon 2007-10-08 17:56:14 +0000
137
Добавлена первая строка текста
138
------------------------------------------------------------
140
committer: Vasya Pupkin <vasya.pupkin@mail.ru>
141
branch nick: myproject
142
timestamp: Mon 2006-10-08 17:46:22 +0000
147
Публикуем ветку через SFTP
148
==========================
150
Есть несколько способов опубликовать вашу ветку. Если у вас уже есть SFTP
151
сервер или вам несложно его настроить, вы можете опубликовать свою ветку через
154
В противном случае, переходите к следующему разделу, чтобы опубликовать ветку
155
на Launchpad_ |--| бесплатном хостинге для Bazaar.
157
.. _Launchpad: https://launchpad.net/
159
Предположим, что вы хотите опубликовать свою ветку на
160
``www.example.com/myproject``::
162
$ bzr push --create-prefix sftp://your.name@example.com/~/public_html/myproject
163
2 revision(s) pushed.
165
Bazaar создаст каталог ``myproject`` на удаленном сервере и поместит в него
168
Теперь любой желающий сможет создать свою собственную копию вашей ветки,
171
$ bzr branch http://www.example.com/myproject
173
**Замечание:** чтобы использовать SFTP, может понадобиться установить
174
``paramiko`` и ``pyCrypto``. За подробностями обращайтесь к
175
http://bazaar-vcs.org/InstallationFaq.
178
Публикация ветки на Launchpad
179
=============================
181
Launchpad это набор инструментов для разработки и размещения проектов
182
свободного программного обеспечения. Вы можете использовать его для публикации
185
Если у вас нет учетной записи Launchpad, следуйте
186
`руководству по получению учетной записи`_ и `зарегистрируйте SSH ключ`_
187
в своей новой учетной записи.
189
.. _руководству по получению учетной записи: https://help.launchpad.net/CreatingYourLaunchpadAccount
190
.. _зарегистрируйте SSH ключ: https://launchpad.net/people/+me/+editsshkeys
192
Заменив ``vasya.pupkin`` на ваше имя пользователя Launchpad, выполните::
194
$ bzr push bzr+ssh://vasya.pupkin@bazaar.launchpad.net/~vasya.pupkin/+junk/myproject
196
**Замечание:** ``+junk`` означает что ветка не связана с каким-либо проектом на
199
Теперь любой желающий сможет создать свою собственную копию вашей ветки,
202
$ bzr branch http://bazaar.launchpad.net/~vasya.pupkin/+junk/myproject
204
Вы также сможете видеть информацию по вашей ветке, включая журнал изменений, по
205
адресу https://code.launchpad.net/people/+me/+junk/myproject
208
Создаем собственную копию другой ветки
209
======================================
211
Чтобы работать с чьим-либо кодом, вы можете создать собственную копию чужой
212
ветки. Давайте возьмем реальный пример |--| GTK интерфейс для Bazaar::
214
$ bzr branch http://bazaar.launchpad.net/~bzr/bzr-gtk/trunk bzr-gtk.vasya
215
Branched 292 revision(s).
217
Bazaar загрузит все файлы и полный журнал изменений из основной ветки проекта
218
bzr-gtk и создаст копию с именем bzr-gtk.vasya.
220
Теперь у вас есть собственная копия ветки и вы можете фиксировать изменения и с
221
сетевым подключением и без него. Вы можете поделиться своей веткой в любое
222
время, опубликовав ветку. И если команда разработчиков bzr-gtk захочет
223
использовать вашу работу, Bazaar легко позволит им объединить вашу ветку
224
обратно в их основную ветку.
226
Обновляем ветку изменениями из основной ветки
227
=============================================
229
Пока вы фиксируете изменения в вашей ветке, другие люди, скорее всего, так же
230
продолжают фиксировать код в родительской ветке.
232
Чтобы быть уверенным что ваша ветка содержит последние изменения, вам следует
233
объединить родительскую ветку с вашей личной::
236
Merging from saved parent location: http://bazaar.launchpad.net/~bzr/bzr-gtk/trunk
237
All changes applied successfully.
239
Проверьте что изменилось::
243
Если изменения вас устраивают, вы можете зафиксировать их в своей ветке::
245
$ bzr commit -m "Изменения из основной ветки"
246
Committed revision 295.
249
Объединяем свои изменения с родительской веткой
250
===============================================
252
После того как вы поработали в своей ветке bzr-gtk, вы можете захотеть
253
отправить ваши изменения для включения в проект. Простейший способ заключается
254
в использовании директивы объединения.
256
Директива объединения |--| это машиночитаемый запрос на осуществление
257
конкретного объединения. Обычно он содержит обзор изменений, которые
258
планируется объединить. Также директива объединения содержит либо необходимые
259
ревизии, либо указывает на ветку где они могут быть получены.
261
Заменив ``mycode.patch``, создайте свою директиву объединения::
263
$ bzr send -o mycode.patch
264
Using saved parent location: http://bazaar.launchpad.net/~bzr/bzr-gtk/trunk
266
Теперь вы можете отправить директиву объединения по электронной почте
267
в проект bzr-gtk. Если разработчики bzr-gtk захотят, то смогут использовать
268
эту директиву для включения вашей работы в основную ветку.
274
Больше информации о Bazaar вы найдете в
275
`Руководстве пользователя Bazaar <../user-guide/index.html>`_.
277
Чтобы узнать больше о Bazaar из командой строки::
281
Чтобы узнать основные команды Bazaar::
285
Чтобы узнать о теме или команде "foo"::
289
.. |--| unicode:: U+2014