~bzr-pqm/bzr/bzr.dev

3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
1
.. Этот файл в формате ReStructuredText - он может быть отформатирован в HTML,
2
.. или текст. В будущем планируется выделять примеры команд и автоматически
3
.. тестировать их.
4
5
.. Данный текст сначала был на Wiki
6
.. http://bazaar.canonical.com/IntroductionToBzr
7
.. но был перемещен в дерево исходного кода что бы синхронизироваться
8
.. с исходным кодом и возможно автоматически тестироваться.
9
10
==============
11
Учебник Bazaar
12
==============
13
14
Текущая версия для bzr-0.91, 2007-08
15
16
17
Введение
18
========
19
20
Если вы уже знакомы с распределенными системами контроля версий, то можете
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
21
сразу перейти к "Представляемся Bazaar". Если, с другой стороны, вы знакомы с
22
системами контроля версий, но не знакомы с распределенными системами, тогда
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
23
стоит начать с "Чем отличаются распределенные системы". Иначе, возьмите кофе
24
или чай, расположитесь поудобнее и продолжим чтение.
25
26
Назначение контроля версий
27
==========================
28
29
Есть шансы, что вы уже работали с какими-либо текстовыми данными -- исходниками
30
программ, Web-сайтами, или конфигурационными файлами с которыми имеют дело
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
31
администраторы систем Unix в /etc. Также есть хорошие шансы, что вы делали
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
32
ошибки, которые вызывали потом глубокое сожаление. Возможно вы удалили
33
конфигурационный файл для вашего почтового сервера, или повредили исходный код
34
любимого проекта. Не важно что конкретно случилось, но вы просто удалили важную
35
информацию которую вы безнадежно хотели бы вернуть. Если такое когда либо
36
случалось с вами, то вы возможно готовы для Bazaar.
37
38
Системы контроля версий, такие как Bazaar дают возможность отслеживать
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
39
изменения для каталога, который они изменяют в нечто более сложное, что
40
называется **ветка**. Ветка не только сохраняет то как каталог выглядит в
41
данный момент, но также как он выглядел в различные моменты в прошлом. Затем,
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
42
когда вы сделаете что-то, что бы вы не хотели делать, вы сможете восстановить
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
43
каталог в том виде как он выглядел в какой-то момент в прошлом.
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
44
45
Системы контроля версий дают пользователям возможность сохранять изменения на
46
ветке "фиксируя **ревизию**". Созданная ревизия фактически является сводкой
47
изменений, которые были сделаны с последнего момента когда дерево было
48
сохранено.
49
50
Эти ревизии имеют также и другое назначение. Например, можно комментировать
51
ревизии, записав, что значит данный набор изменений, через необязательную
52
запись в журнале. Реальные записи в журнале могут быть похожи на "Исправлен
53
Web-шаблон для закрытия таблицы" и "Добавлена поддержка SFTP. Исправлен #595"
54
55
Мы храним этот журнал, что бы позже, в случае каких-либо проблем с SFTP, можно
56
было определить когда могла произойти проблема.
57
58
Чем отличаются распределенные системы
59
-------------------------------------
60
61
Многие системы контроля версий хранят данные на серверах. Если кто-то хочет
62
работать с кодом, который хранится в системе тогда ему нужно установить
63
соединение с сервером и "создать рабочую копию" кода. При этом создается
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
64
каталог в котором можно менять файлы и затем фиксировать изменения. Клиент
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
65
системы затем соединяется с сервером системы и сохраняет изменения. Этот метод
66
известен как централизованная модель.
67
68
Централизованная модель может иметь некоторые недостатки. Централизованная
69
система требует наличия соединения с сервером для любых действий по контролю
70
версий. Это может быть проблематичным если сервер находится на другой машине в
71
интернете, а клиент - нет. Или, хуже, клиент **в** интернете, а сервер - нет.
72
73
Распределенные системы контроля версий обходят эту проблему сохраняя ветки на
74
той же машине на которой находится клиент. В случае с Bazaar, ветка находится в
75
том же самом месте, что и код хранящийся под контролем версий. Это позволяет
76
пользователю сохранять (**фиксировать**) изменения когда он захочет -- даже без
77
сетевого подключения. Пользователю нужен доступ к интернету только когда он
78
хочет получить доступ к чьей-либо ветке в другом месте.
79
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
80
Общее требование, что многие люди хотят отслеживать изменения для каталога,
81
такие как изменения файлов и изменения в подкаталогах. Отслеживать это
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
82
"руками" ужасный процесс, который со временем становится громоздким. До тех пор
83
пока вы не попробуете систему контроля версий, такую как Bazaar. Такие
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
84
инструменты автоматизируют процесс сохранения данных, создавая **ревизии**
85
дерева каталога когда пользователь запрашивает сделать это.
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
86
87
Системы контроля версий, такие как Bazaar, могут делать намного больше чем
88
просто хранить изменения и отменять ошибочные действия. Например, с помощью
89
Bazaar разработчики могут взять изменения кода на одной ветке и объединить их
90
со связанной веткой -- даже если эти изменения хранятся на ветке которую создал
91
кто-то другой. Это позволяет разработчикам сотрудничать без необходимости
92
открывать доступ на запись к репозиторию.
93
94
Bazaar помнит ''предков'' ревизии: предыдущие ревизии на которых основана
95
текущая ревизия. Одна ревизия может иметь больше одного прямого потомка, каждый
96
из которых со своими изменениями, что представляет дивергенцию в эволюции
97
дерева. Создание веток в Bazaar позволяет нескольким людям сотрудничать в
98
эволюции проекта, без необходимости работать жестко по шагам. Создание веток
99
может быть полезным даже для одного разработчика.
100
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
101
Представляемся Bazaar
102
=====================
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
103
3638.6.34 by Dmitry Vasiliev
Added Russian translation for second chapter of tutorial.txt
104
Bazaar устанавливает единственную новую команду, **bzr**. Все возможности
105
предоставляются через под-команды этой команды. Вы можете просмотреть краткую
106
справку командой ``bzr help``. Некоторые идеи группируются по темам,
107
используйте ``bzr help topics`` для списка доступных тем.
108
109
Одна из функций системы контроля версий -- отслеживать кто сделал изменения. В
110
распределенных системах для этого требуется идентифицировать каждого автора
111
уникально в глобальном плане. Большинство людей уже имеют такой идентификатор:
112
email адрес. Bazaar достаточно умен, что бы автоматически создавать email адрес
113
из текущего имени и адреса хоста. Если вам не нравится предположение которое
114
делает Bazaar вы сможете выбрать из трех опций:
115
116
 #. Установить email адрес через ``bzr whoami``. Это наиболее простой путь.
117
118
    Что бы установить такой глобальный идентификатор, используйте::
119
120
     % bzr whoami "Ваше Имя <email@example.com>"
121
122
    Если вы хотите использовать разные адреса для разных веток, то зайдите
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
123
    в каталог с веткой и используйте::
3638.6.34 by Dmitry Vasiliev
Added Russian translation for second chapter of tutorial.txt
124
125
     % bzr whoami --branch "Ваше Имя <email@example.com>"
126
127
 #. Установить email адрес в ``~/.bazaar/bazaar.conf`` [1]_, добавив следующие
128
    строчки. Заметьте, что ``[DEFAULT]`` зависит от регистра символов::
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
129
130
        [DEFAULT]
3638.6.34 by Dmitry Vasiliev
Added Russian translation for second chapter of tutorial.txt
131
        email=Ваше Имя <email@isp.com>
132
133
    Как и выше вы можете переопределить эти установки для каждой ветки
134
    создав секцию для ветки в ``~/.bazaar/locations.conf`` и добавив
135
    следующие строчки::
136
137
        [/путь/к/ветке]
138
        email=Ваше Имя <email@isp.com>
139
140
 #. Переопределить два предыдущих способа, установив ваш полный email адрес в
141
    глобальную переменную среды ``$BZR_EMAIL``, или ``$EMAIL`` (``$BZR_EMAIL``
142
    имеет больший приоритет).
143
144
.. [1] Для Windows пользовательские файлы конфигурации могут быть найдены в
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
145
   каталоге с данными приложений. Таким образом вместо
3638.6.34 by Dmitry Vasiliev
Added Russian translation for second chapter of tutorial.txt
146
   ``~/.bazaar/branch.conf`` конфигурация может быть найдена в:
147
   ``C:\Documents and Settings\<пользователь>\Application Data\Bazaar\2.0\branch.conf``. Там же могут
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
148
   быть найдены ``locations.conf``, ``ignore`` и каталог ``plugins``.
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
149
3638.6.35 by Dmitry Vasiliev
Updated Russian translation of tutorial.txt
150
Создаем ветку
151
=============
152
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
153
История по-умолчанию хранится на ветке в каталоге .bzr. В будущих версиях
3638.6.35 by Dmitry Vasiliev
Updated Russian translation of tutorial.txt
154
Bazaar будут средства для хранения истории в отдельном репозитории, который
155
также сможет быть удаленным.
156
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
157
Мы создаем новую ветку выполнив ``bzr init`` в уже созданном каталоге::
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
158
159
    % mkdir tutorial
160
    % cd tutorial
161
    % ls -a
162
    ./  ../
163
    % pwd
164
    /home/mbp/work/bzr.test/tutorial
165
    %
166
    % bzr init
167
    % ls -aF
168
    ./  ../  .bzr/
169
    %
170
3638.6.35 by Dmitry Vasiliev
Updated Russian translation of tutorial.txt
171
Как и в CVS здесь три класса файлов: неизвестные, игнорируемые и под контролем
172
версий. Команда **add** ставит файл под контроль версий, т.е. изменения в нем
173
будут записываться системой::
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
174
175
    % echo 'hello world' > hello.txt
176
    % bzr status
177
    unknown:
178
      hello.txt
179
    % bzr add hello.txt
180
    added hello.txt
181
    % bzr status
182
    added:
183
      hello.txt
184
3638.6.35 by Dmitry Vasiliev
Updated Russian translation of tutorial.txt
185
Если вы добавили не тот файл просто сделайте ``bzr remove``, что бы сделать его
186
опять неизвестным. Рабочая копия файла не будет удалена в этом случае, хотя она
187
может быть удалена в других случаях [2]_.
188
189
.. [2] ``bzr remove`` удалит рабочую копию если она находится под контролем
190
   версий, но не имеет изменений с последней зафиксированной версии. Вы
191
   можете оставить файл указав опцию ``--keep`` для ``bzr remove``, или
192
   удалить с опцией ``--force``.
193
194
Размещение веток
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
195
================
196
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
197
Вся история хранится на ветке, которая является всего лишь каталогом на диске
198
содержащим файлы управления. По-умолчанию здесь нет отдельного репозитория, или
3638.6.35 by Dmitry Vasiliev
Updated Russian translation of tutorial.txt
199
базы данных как в svn, или svk. По желанию вы можете создать репозиторий (см.
200
команду ``bzr init-repo``). Это можно сделать в случае очень больших веток, или
201
большого количества веток для проекта среднего размера.
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
202
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
203
Мы обычно обращаемся к веткам на нашем компьютере просто передав имя каталога
5538.2.2 by Zearin
Continued capitalization fixes ([S]FTP, SSH).
204
содержащего ветку. bzr также поддерживает доступ к веткам через HTTP и SFTP,
3638.6.35 by Dmitry Vasiliev
Updated Russian translation of tutorial.txt
205
например::
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
206
5050.22.1 by John Arbash Meinel
Lots of documentation updates.
207
    % bzr log http://bazaar.launchpad.net/~bzr-pqm/bzr/bzr.dev/
208
    % bzr log sftp://bazaar.launchpad.net/~bzr-pqm/bzr/bzr.dev/
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
209
3638.6.35 by Dmitry Vasiliev
Updated Russian translation of tutorial.txt
210
Установив для bzr плагины можно также осуществлять доступ к веткам с
211
использованием rsync.
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
212
3638.6.35 by Dmitry Vasiliev
Updated Russian translation of tutorial.txt
213
Смотрите секцию `Публикация ветки`_ что бы получить больше информации о том как
214
поместить свою ветку в нужное место.
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
215
3638.6.36 by Dmitry Vasiliev
Updated Russian translation for tutorial.txt
216
Просмотр изменений
217
==================
218
219
Как только вы закончили свою работу, вы захотите **зафиксировать** ее в истории
220
ревизий. Хорошая практика фиксировать изменения достаточно часто: когда
221
заработала новая функциональность, исправлена ошибка, или улучшен код, или
222
документация. При этом стоит проверить, что код компилируется и проходит все
223
тесты перед фиксацией, что бы быть уверенным, что каждая ревизия в хорошем
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
224
состоянии. Также можно просмотреть свои изменения, для уверенности, что вы
3638.6.36 by Dmitry Vasiliev
Updated Russian translation for tutorial.txt
225
фиксируете именно то, что хотели и получить шанс проверить свою работу перед
226
тем как записать ее постоянно.
227
228
Две команды bzr особенно полезны здесь: **status** и **diff**.
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
229
230
bzr status
231
----------
232
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
233
Команда **status** показывает какие изменения были сделаны в рабочем каталоге
3638.6.36 by Dmitry Vasiliev
Updated Russian translation for tutorial.txt
234
с момента последней ревизии::
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
235
236
    % bzr status
237
    modified:
238
       foo
239
3638.6.36 by Dmitry Vasiliev
Updated Russian translation for tutorial.txt
240
``bzr status`` скрывает "неинтересные" файлы которые, либо не менялись, либо
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
241
игнорируются. Также команде status могут быть переданы необязательные имена
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
242
файлов, или каталогов для проверки.
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
243
244
bzr diff
245
--------
246
3638.6.36 by Dmitry Vasiliev
Updated Russian translation for tutorial.txt
247
Команда **diff** показывает изменения в тексте файлов в стандартном формате
248
diff. Вывод этой команды может быть передан другим командам, таким как
249
''patch'', ''diffstat'', ''filterdiff'' и ''colordiff''::
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
250
251
    % bzr diff
252
    === added file 'hello.txt'
253
    --- hello.txt   1970-01-01 00:00:00 +0000
254
    +++ hello.txt   2005-10-18 14:23:29 +0000
255
    @@ -0,0 +1,1 @@
256
    +hello world
257
3638.6.36 by Dmitry Vasiliev
Updated Russian translation for tutorial.txt
258
С опцией ``-r`` дерево файлов сравнивается с ранней ревизией, или показываются
259
изменения между двумя ревизиями::
260
261
    % bzr diff -r 1000..          # изменения начиная с r1000
262
    % bzr diff -r 1000..1100      # изменения c 1000 до 1100
263
264
Опция ``--diff-options`` говорит bzr запустить внешнюю программу diff, передав
265
ей опции. Например::
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
266
267
    % bzr diff --diff-options --side-by-side foo
268
3638.6.36 by Dmitry Vasiliev
Updated Russian translation for tutorial.txt
269
Некоторые проекты предпочитают показывать префиксы в начале текста изменений
270
для старых (old) и новых (new) файлов. Опция ``--prefix`` может быть
271
использована для установки такого префикса. Плюс к этому команда ``bzr diff
272
-p1`` выводит префиксы в форме которая подходит для команды ``patch -p1``.
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
273
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
274
Фиксация изменений
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
275
==================
276
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
277
Когда состояние рабочего дерева подходит для сохранения оно может быть
278
**зафиксировано** на ветке, что создаст новую ревизию содержащую снимок
279
состояния дерева.
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
280
281
bzr commit
282
----------
283
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
284
Команде **commit** можно передать сообщение описывающее изменения в ревизии.
285
Она также записывает идентификатор пользователя, текущее время и временную
286
зону, плюс список измененных файлов и их содержимого. Сообщение описывающее
287
изменения определяется через опцию ``-m``, или ``--message``. Можно также
288
вводить сообщения состоящие из нескольких строк; в большинстве оболочек вы
289
можете сделать это оставив открытую кавычку в конце строки.
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
290
291
::
292
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
293
    % bzr commit -m "добавлен первый файл"
294
295
Также можно использовать опцию ``-F``, для получения сообщения из файла.
296
Некоторые люди делают заметки изменений во время работы над ними, а затем
297
просматривают изменения, что бы быть уверенными, что они сделали то, что хотели
298
сделать. (Этот файл может быть также полезен когда вы возвращаетесь к своей
299
работе после перерыва.)
300
301
Сообщение из текстового редактора
302
=================================
303
304
Если вы не используете опции ``-m`` и ``-F`` тогда bzr откроет текстовый
305
редактор для ввода сообщения. Какой редактор запускать может быть настроено
306
через переменные среды ``$VISUAL``, или ``$EDITOR``, которые могут быть
307
переопределены опцией ``editor`` в файле ``~/.bazaar/bazaar.conf``; опция
308
``$BZR_EDITOR`` переопределяет все описанные выше настройки. Если вы выходите
309
из редактора без каких-либо изменений, то фиксация будет прервана.
310
311
Файл который открывается в редакторе содержит горизонтальную линию. Часть файла
312
ниже этой линии включена только для информации и не будет частью сообщения об
313
изменениях. Ниже линии показывается список файлов которые были изменены. Для
314
создания сообщения вам надо написать свое сообщение выше линии, сохранить его и
315
выйти из редактора.
316
317
Если вы хотите увидеть изменения содержимого файлов которые будут
318
зафиксированы, при редактировании сообщения вам нужно указать опцию
319
``--show-diff`` для команды ``commit``. Эта опция добавит изменения в файл
320
который будет открыт в редакторе ниже линии и списка измененных файлов. Это
321
значит, что вы можете читать изменения при редактировании сообщения, но они не
322
будут включены в сообщение когда вы закончите редактировать. Если вы хотите,
323
что бы части изменений были включены в сообщение вы можете скопировать и
324
вставить их выше ограничительной линии.
325
326
Выборочная фиксация
327
-------------------
328
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
329
Если вы передадите список имен файлов, или каталогов после команды commit, то
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
330
будут зафиксированы только изменения для переданных объектов. Например::
331
332
    % bzr commit -m "исправления документации" commit.py
333
334
По умолчанию bzr всегда фиксирует все изменения для дерева, даже если запущен
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
335
из подкаталога. Что бы зафиксировать только изменения от текущего каталога
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
336
и ниже, используйте::
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
337
338
    % bzr commit .
339
340
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
341
Удаление не зафиксированных изменений
342
=====================================
343
344
Если вы сделали какие-либо изменения и не хотите оставлять их, используйте
345
команду **revert**, что бы вернутся к состоянию предыдущей ревизии. Хорошая
346
идея, использовать сначала ``bzr diff`` для просмотра изменений. По умолчанию
347
команда revert отменяет изменения на всем дереве, но если ей переданы имена
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
348
файлов, или каталогов то будут затронуты только они. ``bzr revert`` также
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
349
очищает список ревизий ожидающих объединения.
350
351
Игнорирование файлов
352
====================
353
354
Многие деревья с исходным кодом содержат файлы которые не нужно хранить под
355
контролем версий, например резервные файлы текстового редактора, объектные
356
файлы и собранные программы. Вы можете просто не добавлять их, но они всегда
357
будут обнаруживаться как неизвестные. Вы также можете сказать bzr игнорировать
358
их добавив их в файл ``.bzrignore`` в корне рабочего дерева.
359
360
Этот файл содержит список шаблонов файлов, по одному в каждой строчке. Обычное
361
содержимое может быть таким::
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
362
363
    *.o
364
    *~
365
    *.tmp
366
    *.py[co]
367
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
368
Если шаблон содержит слеш, то он будет сопоставлен с полным путем начиная от
369
корня рабочего дерева; иначе он сопоставляется только с именем файла. Таким
370
образом пример выше игнорирует файлы с расширением ``.o`` во всех
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
371
подкаталогах, но пример ниже игнорирует только ``config.h`` в корне рабочего
372
дерева и HTML файлы в каталоге ``doc/``::
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
373
374
    ./config.h
375
    doc/*.html
376
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
377
Для получения списка файлов которые игнорируются и соответствующих им шаблонов
378
используйте команду ``bzr ignored``::
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
379
380
    % bzr ignored
381
    config.h                 ./config.h
382
    configure.in~            *~
383
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
384
Нет проблем если шаблон для игнорирования подходит для файла под контролем
385
версий, или вы добавили файл который игнорируется. Шаблоны не имеют никакого
386
эффекта на файлы под контролем версий, они только определяют показываются
387
неизвестные файлы, или просто игнорируются.
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
388
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
389
Файл ``.bzrignore`` обычно должен быть под контролем версий, что бы новые копии
390
ветки видели такие же шаблоны::
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
391
392
    % bzr add .bzrignore
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
393
    % bzr commit -m "Добавлены шаблоны для игнорирования"
394
395
396
Глобальные шаблоны для игнорирования
397
------------------------------------
398
399
Обычно есть файлы которые нужно игнорировать и они не специфичны для отдельных
400
проектов, а скорее специфичны для пользователя. Например, временные файлы
401
текстового редактора, или персональные временные файлы. Вместо того, что бы
402
добавлять их для игнорирования в каждом проекте, bzr поддерживает глобальный
403
файл игнорирования ``~/.bazaar/ignore`` [1]_. Он имеет такой же синтаксис, что
404
и файл игнорирования для каждого проекта.
405
406
407
Просмотр истории
408
================
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
409
410
bzr log
411
-------
412
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
413
Команда ``bzr log`` показывает список предыдущих ревизий. Команда ``bzr log
414
--forward`` делает тоже самое, но в хронологическом порядке, показывая более
415
поздние ревизии в конце.
416
417
Как и ``bzr diff``, ``bzr log`` поддерживает опцию ``-r``::
418
419
    % bzr log -r 1000..          # Ревизия 1000 и все после нее
420
    % bzr log -r ..1000          # Все до и включая r1000
421
    % bzr log -r 1000..1100      # изменения с 1000 до 1100
422
    % bzr log -r 1000            # Изменения только для ревизии 1000
423
424
425
Статистика ветки
426
================
427
428
Команда ``bzr info`` показывает суммарную информацию о рабочем дереве и истории
429
на ветке.
430
431
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
432
Каталоги под контролем версий
433
=============================
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
434
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
435
bzr может контролировать файлы и каталоги, отслеживая переименования и
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
436
упрощая их последующее объединение::
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
437
438
    % mkdir src
439
    % echo 'int main() {}' > src/simple.c
440
    % bzr add src
441
    added src
442
    added src/simple.c
443
    % bzr status
444
    added:
445
      src/
446
      src/simple.c
447
448
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
449
Удаление файлов
450
===============
451
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
452
Вы можете удалить файл, или каталог из под контроля версий просто удалив их
453
из рабочего каталога. Это немного отличается от CVS, которая требует что бы вы
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
454
также сделали ``cvs remove``.
455
456
``bzr remove`` удаляет файл из под контроля версий, но может и не удалять
457
рабочую копию файла [2]_. Это удобно когда вы добавили не тот файл, или решили,
458
что файл на самом деле не должен быть под контролем версий.
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
459
460
::
461
462
    % rm -r src
463
    % bzr remove -v hello.txt
464
    ?       hello.txt
465
    % bzr status
466
    removed:
467
      hello.txt
468
      src/
469
      src/simple.c
470
    unknown:
471
      hello.txt
472
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
473
Если вы вдруг удалили не тот файл, то вы можете использовать ``bzr revert`` что
474
бы восстановить его.
475
476
477
Ветвление
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
478
=========
479
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
480
Часто вместо того что бы начинать свой собственный проект, вы хотите предложить
481
изменения для уже готового проекта. Что бы сделать это вам нужно получить копию
482
готовой ветки. Так как эта копия может быть потенциальной новой веткой эта
483
команда называется **branch**::
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
484
5050.22.1 by John Arbash Meinel
Lots of documentation updates.
485
    % bzr branch lp:bzr bzr.dev
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
486
    % cd bzr.dev
487
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
488
Эта команда копирует полную историю ветки и после этого вы можете делать все
489
операции с ней локально: просматривать журнал, создавать и объединять другие
490
ветки. Здесь также есть опция для получения только части истории если это
491
необходимо.
492
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
493
Копию другой ветки можно также получить просто скопировав ее каталог,
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
494
развернув архив, или скопировав удаленно через такую утилиту как rsync.
495
496
497
Следование за изменениями основного проекта
498
===========================================
499
500
Вы можете обновлять свою ветку из родительской через получение ее изменений::
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
501
502
    % bzr pull
503
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
504
После этого локальный каталог будет копией родительского. Это включает и
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
505
''историю ревизий'' - список изменений сделанных на родительской ветке, а не
506
объединенных с других веток.
507
508
Эта команда работает только если локальная ветка, либо более старая копия
509
родительской ветки без новых фиксаций, либо все последние фиксации уже были
510
объединены с родительской веткой.
511
512
Объединение со связанных веток
513
==============================
514
515
Если две ветки разошлись (обе имеют уникальные изменения) тогда ``bzr merge`` -
516
это подходящая команда для использования. Объединение автоматически вычислит
517
изменения которые существуют на объединяемой ветке и отсутствуют в локальной
518
ветке и попытается объединить их с локальной веткой.
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
519
520
::
521
522
  % bzr merge URL
523
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
524
В случае конфликта при объединении будут созданы три файла с одними именем, но
525
разными расширениями. Файл с общими изменениями будет с расширением ".BASE",
526
файл с локальными изменениями будет с расширением ".THIS" и файл с изменениями
527
из объединяемой ветки будет с расширением ".OTHER". Используя такую программу
528
как kdiff3 вы теперь сможете достаточно легко объединить их в один файл. Для
529
фиксации изменений вам нужно переименовать объединенный файл (".THIS") в файл с
530
оригинальным именем. И для завершения исправления конфликта нужно использовать
531
команду resolve, которая удалит файлы ".OTHER" и ".BASE". Команда commit будет
532
выдавать ошибку пока существует один из файлов с расширением .BASE, .THIS, или
533
.OTHER.
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
534
535
::
536
537
  % kdiff3 file.BASE file.OTHER file.THIS
538
  % mv file.THIS file
539
  % bzr resolve file
540
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
541
[**TODO**: описать маркеры конфликтов внутри файлов]
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
542
543
3638.6.35 by Dmitry Vasiliev
Updated Russian translation of tutorial.txt
544
Публикация ветки
545
================
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
546
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
547
Для публикации ветки bzr вам не нужен специализированный сервер, нужен просто
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
548
обычный Web-сервер. Просто перенесите файлы на ваш сервер, включая каталог
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
549
.bzr. Можно опубликовать ветку (или изменения на ветке) одним из следующих трех
550
способов:
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
551
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
552
* Лучший способ - использовать для этого сам bzr.
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
553
554
  ::
555
4853.1.1 by Patrick Regan
Removed trailing whitespace from files in doc directory
556
    % bzr push sftp://servername.com/path/to/directory
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
557
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
558
  (Каталог назначения должна быть создан заранее, если только не указана
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
559
  опция ``--create-prefix``)
560
561
* Другой способ - плагин ``rspush`` который включен в BzrTools и использует
562
  rsync для публикации изменений в истории ревизий и рабочем дереве.
563
564
* Вы также можете скопировать файлы руками, переслав архив, или используя
565
  rsync, или другой метод пересылки. Обычно это менее безопасно чем
566
  использовать команду ``push``, но может быть быстрее и проще в каких-то
567
  ситуациях.
568
569
Перемещение изменений между деревьями
570
=====================================
571
572
Это случается и с лучшими из нас: в какой-то момент вы делаете изменения не в
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
573
том дереве файлов. Возможно потому, что вы случайно начали работать не в том
574
каталоге, либо изменений оказались больше чем вы ожидали и вы решили создать
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
575
для них новую ветку.
576
577
Для перемещения изменений из одного дерева в другое используйте
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
578
579
::
580
581
  % cd NEWDIR
582
  % bzr merge --uncommitted OLDDIR
583
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
584
Эта команда перенесет все не зафиксированные изменения с ветки OLDDIR на ветку
585
NEWDIR. Команда не будет переносить зафиксированные изменения, даже если они
586
могли бы быть объединены с NEWDIR обычным объединением. Изменения также
587
остаются и в OLDDIR, но вы можете использовать ``bzr revert OLDDIR`` для их
588
удаления, как-то только убедитесь, что с NEWDIR все нормально.
3638.6.33 by Dmitry Vasiliev
Added Russian translation for the first chapter of tutorial.txt
589
3638.6.37 by Dmitry Vasiliev
Completed Russian translation for tutorial.txt
590
NEWDIR не обязательно должен быть копией OLDDIR, но они должны быть связанными
591
ветками. Чем больше они отличаются, тем больше шанс возникновения конфликтов.