1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
|
======================
Базар за пять минут
======================
.. содержание::
Введение
========
Базар - это распределенная система контроля версий, которая упрощает совместную работу над программными проектами.
В течении следующих пяти минут, вы узнаете как начать контролиривать версии ваших файлов, как вносить изменения, проверять вашу работу, публиковать её и отправить вашу работу для добавления к главной ветке проекта.
Если вы предпочитаете более подробное введение, обратитесь к разделу `Узнать больше`_.
Установка
=========
Это руководство не описывает как установить Базар, потому что обычно это очень легко. Инструкции по установке вы найдете тут:
- **GNU/Linux:** скорее всего Базар уже присутствует в вашем дистрибутиве GNU/Linux.
- **Windows:** `инструкции по установке для Windows`_.
- **Mac OS X:** `инструкции по установке для Mac OS X`_.
Для других платформ и для установки из исходных кодов, обратитесь к страницам Загрузка_ и Установка_.
.. _инструкции по установке для Windows: http://bazaar-vcs.org/WindowsDownloads
.. _инструкции по установке для Mac OS X: http://bazaar-vcs.org/MacOSXBundle
.. _Загрузка: http://bazaar-vcs.org/Download
.. _Установка: http://bazaar-vcs.org/InstallationFaq
Представьтесь
=============
Прежде чем начать работать, было бы неплохо сообщить Базару кто вы такой. В этом случае ваша работа будет корректно отражена в истории версий.
Используйте ваше имя и адрес электронной почты, вместо Васи Пупкиного, напишите:
$ bzr whoami "Vasya Pupkin <vasya.pupkin@mail.ru>"
Базар создаст или подправит файл настроек, включив в него ваше имя и адрес электронной почты.
Теперь, проверьте правильно ли установлены ваше имя и адрес электронной почты:
$ bzr whoami
Vasya Pupkin <vasya.pupkin@mail.ru>
Начинаем контролировать версии файлов
=====================================
Создадим каталог и какие-нибудь файлы для использования с Базаром:
$ mkdir myproject
$ cd myproject
$ mkdir subdirectory
$ touch test1.txt test2.txt test3.txt subdirectory/test4.txt
**Замечание для пользователей Windows:** используйте Windows Explorer для создания ваших каталогов, затем нажимайте правую кнопку мыши в этих каталогах и выбирайте ``Новый файл``, чтобы создать ваши файлы.
Теперь дадим Базару возможность самонастроиться в каталоге вашего проекта::
$ bzr init
Если всё выглядит так, как будто ничего не случилось - не волнуйтесь. Базар создал ветку_ там же, где он хранит ваши файлы и историю их изменений.
.. _ветку: http://bazaar-vcs.org/Branch
Следующим шагом нужно сказать Базару какие файлы вы хотите контролировать. Если выполнить ``bzr add`` будет добавлено все что есть в проекте::
$ bzr add
added subdirectory
added test1.txt
added test2.txt
added test3.txt
added subdirectory/test4.txt
Далее, сделаем снимок ваших файлов и зафиксируем их в вашей ветке. Добавьте сообщение с объеяснением - зачем вы их зафиксировали::
$ bzr commit -m "Initial import"
Т.к. Базар это распределенная система контроля версий, он не соединяется с центральным сервером чтобы сделать фиксацию. Вместо этого, Базар сохраняет вашу ветку и все её фиксации внутри каталога с которым вы работаете; обратите внимание на подкаталог ``.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
Зафиксируем вашу работу в ветке Базара::
$ bzr commit -m "Added first line of text"
Committed revision 2.
Просматриваем журнал изменений
==============================
Вы можете увидеть историю вашей ветки просмотрев её журнал::
$ bzr log
------------------------------------------------------------
revno: 2
committer: Vasya Pupkin <vasya.pupkin@mail.ru>
branch nick: myproject
timestamp: Mon 2007-10-08 17:56:14 +0000
message:
Added first line of text
------------------------------------------------------------
revno: 1
committer: Vasya Pupkin <vasya.pupkin@mail.ru>
branch nick: myproject
timestamp: Mon 2006-10-08 17:46:22 +0000
message:
Initial import
Публикуем вашу ветку через SFTP
===============================
Есть несколько способов опубликовать вашу ветку. Если у вас уже есть SFTP сервер или удобные настройки для него, вы можете опубликовать свою ветку на нём.
В противном случае, пропустите следующый раздел, чтобы опубликовать на Launchpad_ - бесплатный сервис для размещения файлов Базара.
.. _Launchpad: https://launchpad.net/
Предположим, что вы хотите опубликовать свою ветку на ``www.example.com/myproject``::
$ bzr push --create-prefix sftp://your.name@example.com/~/public_html/myproject
2 revision(s) pushed.
Базар создаст каталог ``myproject`` на удаленном сервере и поместит в него вашу ветку.
Теперь кто угодно может создать свою личную копию вашей ветки, выполнив::
$ bzr branch http://www.example.com/myproject
**Замечание:** чтобы использовать SFTP, вы дожны установить ``paramiko`` и `pyCrypto``. За подробностями обращайтесь к http://bazaar-vcs.org/InstallationFaq.
Публикация собственной ветки на Launchpad
=========================================
Launchpad это набор инструментов для разработки и размещения проектов свободного программного обеспечения. Вы можете использовать его для публикации своей ветки.
Если у вас нет учетной записи Launchpad, следуюйте `руководству по получению учетной записи`_ и `зарегистрируйте SSH ключ`_ в своей новой учетной записе.
.. _руководству по получению учетной записи: https://help.launchpad.net/CreatingYourLaunchpadAccount
.. _зарегистрируйте SSH ключ: https://launchpad.net/people/+me/+editsshkeys
Замените ``vasya.pupkin`` на имя вашего пользователя в Launchpad, выполнив::
$ bzr push bzr+ssh://vasya.pupkin@bazaar.launchpad.net/~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).
Базар загрузит все файлы и полный журнал изменений из главной ветки проекта bzr-gtk и создаст копию с именем bzr-gtk.vasya.
Теперь, у вас есть личная копи ветки и вы можете фиксировать изменения с или без сетевого подключения. Вы можете поделиться своей веткой в любое время, опубликовав её. И если команда bzr-gtk захочет использовать вашу работу, Базар легко позволит им объеденить вашу ветку с их главной веткой.
Обновляем вашу ветку до главной
===============================
Пока вы фиксируете изменения в вашей ветке, другие люди, скорее всего, так же продолжают фиксировать код в родительской ветке.
Чтобы быть увереным что ваша ветка остается свежей, вам следует обновлять её до родительской::
$ bzr merge
Using saved location: http://bazaar.launchpad.net/~bzr/bzr-gtk/trunk
All changes applied successfully.
Проверьте что изменилось:
$ bzr diff
Если изменения вас устраивают, вы можете зафиксировать их в своей личной ветке:
$ bzr commit -m "Merge from main branch"
Committed revision 295.
Обновляем родительскую ветку вашими наработками
===============================================
После того как вы поработали в своей личной ветки bzr-gtk, вы можете захотеть отправить ваши изменения обратно в проект. Простейший способ заключается в использовании инструкций для объединения.
Инструкции для объединения это машиночитаемый запрос на осуществление конкретного объединения. Обычно он содержит обзор заплатки для объединения, а также содержит необходимые ревизии или указывает на ветку, откуда они могут быть получены.
Замените ``mycode.patch``, указав свою инструкцию merge::
$ bzr send -o mycode.patch
Using saved location: http://bazaar.launchpad.net/~bzr/bzr-gtk/trunk
Теперь вы можете отправить по электронной почте инструкцию merge в проект bzr-gtk. И если они согласны, то смогут использовать её чтобы объединить вашу работу с родительской веткой.
Узнать больше
=============
Больше информации о Базаре вы найдете в `Руководстве пользователя Базара <../user-guide/index.html>`_.
Чтобы узнать больше о Базаре из командой строки::
$ bzr help
Чтобы узнать основные команды Базара::
$ bzr help commands
Чтобы узнать о теме или команде "foo"::
$ bzr help foo
|