~bzr-pqm/bzr/bzr.dev

3638.6.31 by Dmitry Vasiliev
Added Russian translation for part 1.2 of the user guide
1
.. _using-stacked-branches:
2
3
Использование стека веток
4
=========================
5
3638.6.32 by Dmitry Vasiliev
Added Russian translation for part 7.5 of the user guide
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
Что бы создать ветку в стеке нужно использовать опцию ``stacked`` для команды
33
``branch``. Например::
3638.6.31 by Dmitry Vasiliev
Added Russian translation for part 1.2 of the user guide
34
35
  bzr branch --stacked source-url my-dir
36
3638.6.32 by Dmitry Vasiliev
Added Russian translation for part 7.5 of the user guide
37
Здесь мы создадим ``my-dir`` как ветку в стеке без локальных ревизий. Если
38
определено открытая ветка связанная с ``source-url`` будет использована как
39
*основа стека*. Иначе ``source-url`` будет *основой стека*.
40
41
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
42
Создание рабочего каталога в стеке
43
-----------------------------------
3638.6.32 by Dmitry Vasiliev
Added Russian translation for part 7.5 of the user guide
44
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
45
Поддержка прямого создания рабочего каталога в стеке скоро ожидается. Пока
3638.6.32 by Dmitry Vasiliev
Added Russian translation for part 7.5 of the user guide
46
для этого требуется два шага:
47
48
1. Создать ветку в стеке, как описано выше.
49
3638.6.38 by Alexey Shtokalo
* изменен способ рисования плашек в карточке быстрого доступа с целью улучшить
50
2. Конвертировать ветку в рабочий каталог используя либо команду
3638.6.32 by Dmitry Vasiliev
Added Russian translation for part 7.5 of the user guide
51
   ``reconfigure``, либо команду ``bind``.
52
53
54
Публикация ветки в стеке
3638.6.31 by Dmitry Vasiliev
Added Russian translation for part 1.2 of the user guide
55
------------------------
56
3638.6.32 by Dmitry Vasiliev
Added Russian translation for part 7.5 of the user guide
57
Многие изменения в большинстве проектов создаются на основе готовых веток,
58
таких как *основная линия разработки*, или *текущая стабильная*. Создание новой
59
ветки в стеке основанной на таких ветках легко сделать с использованием команды
60
``push``::
3638.6.31 by Dmitry Vasiliev
Added Russian translation for part 1.2 of the user guide
61
62
  bzr push --stacked-on reference-url my-url
63
3638.6.32 by Dmitry Vasiliev
Added Russian translation for part 7.5 of the user guide
64
Эта команда создаст новую ветку ``my-url``, которая будет основана на
65
``reference-url`` и содержать только ревизии из текущей ветки, которых еще нет
66
на ветке ``reference-url``.
3638.6.31 by Dmitry Vasiliev
Added Russian translation for part 1.2 of the user guide
67
3638.6.32 by Dmitry Vasiliev
Added Russian translation for part 7.5 of the user guide
68
Если локальная ветка была создана как ветка в стеке то мы можем использовать
69
опцию ``--stacked`` для команды ``push`` и тогда ветка на которой будет основан
70
стек будет задана неявно. Например::
3638.6.31 by Dmitry Vasiliev
Added Russian translation for part 1.2 of the user guide
71
72
  bzr branch --stacked source-url my-dir
73
  cd my-dir
3638.6.32 by Dmitry Vasiliev
Added Russian translation for part 7.5 of the user guide
74
  (меняем, меняем, меняем)
75
  bzr commit -m "исправление ошибки"
3638.6.31 by Dmitry Vasiliev
Added Russian translation for part 1.2 of the user guide
76
  bzr push --stacked
77
78
3638.6.32 by Dmitry Vasiliev
Added Russian translation for part 7.5 of the user guide
79
Ограничения веток в стеке
80
-------------------------
3638.6.31 by Dmitry Vasiliev
Added Russian translation for part 1.2 of the user guide
81
3638.6.32 by Dmitry Vasiliev
Added Russian translation for part 7.5 of the user guide
82
Важная вещь которую надо запомнить в отношении веток в стеке - ветка на которой
83
основан стек должна быть доступна практически для всех операций. Конечно это не
84
проблема если обе ветки локальные, или находятся на одном сервере.