Bazaar is a distributed version control system / Базар - распределенная система контроля версий: doc/en/user-guide/zen.txt
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
Путь Bazaar master 05.06.09 в 19:46 |
|
|
Глубокое понимание Bazaar master 05.06.09 в 20:03 Философия Bazaar
Neronyatkin 21.06.09 в 02:10 Концепция Bazaar
Neronyatkin 23.06.09 в 20:15 |
||
|
Хотя Bazaar во многом похож на другие инструменты контроля версий, есть master 05.06.09 в 20:03 |
||
|
Заметьте: чтобы использовать Bazaar совсем необязательно полностью понимать master 05.06.09 в 20:04 |
||
|
Понимание номеров ревизий master 05.06.09 в 19:46 Что такое номер ревизии.
Neronyatkin 21.06.09 в 02:00 Номер ревизии
Neronyatkin 21.06.09 в 02:00 |
||
|
Все ревизии в пределах основной линии ветки пронумерованы по
Neronyatkin 21.06.09 в 02:43 |
||
|
Для ревизий полученных путем слияния с другой веткой используется точечная нотация (например, 3112.1.5). Номер ревизии в таком виде состоит из трех чисел: Первое число указывает на номер ревизии в основной линии с которой начинаются различия (идет ответвление). Второе число — счетчик веток. Из одной и той же ревизии может ответвляться много веток и каждая из них будет иметь уникальный номер. Третье число — порядковый номер ревизии начиная с момента ответвления. Например, 3112.1.5 - это пятая ревизия в первом ответвлении от ревизии 3112. Neronyatkin 21.06.09 в 03:01 |
||
|
.. [#] Версии ниже bzr 1.2 используют несколько другой алгоритм.
Neronyatkin 23.06.09 в 20:23 |
||
|
Иерархическая история это хорошо
Neronyatkin 21.06.09 в 07:42 |
||
|
Представьте себе проект в котором участвуют разные разработчики. Они вносят изменения в проект, причем многие изменения состоят из серий фиксаций. В качестве примера рассмотрим такой случай:: Neronyatkin 21.06.09 в 23:40 |
||
|
* Ствол проекта содержит 100 ревизий.
Neronyatkin 21.06.09 в 03:22 |
||
|
Если бы разработчики работали параллельно и использовали традиционную централизованную СКВ, история проекта скорее всего была бы линейной и правки Марии и Била были бы перемешаны. История проекта могла бы выглядеть, например, так:: Neronyatkin 21.06.09 в 03:22 |
||
|
107: Add documentation for Y
Neronyatkin 21.06.09 в 03:23 |
||
|
Альтернативный подход, поддерживаемый распределенной СКВ, заключается в том, чтобы создать отдельные ветки под каждую задачу и объединить их когда задачи будут решены. В этом случае, ветка для задачи Марии будет выглядеть так:: Neronyatkin 21.06.09 в 07:29 |
||
|
103: Fix bug found in testing X
Neronyatkin 21.06.09 в 07:29 |
||
|
А ветка Била так:: Neronyatkin 21.06.09 в 07:29 |
||
|
104: Add documentation for Y
Neronyatkin 21.06.09 в 07:30 |
||
|
Если задачи независимы и Вы хотите получить линейную историю, изменения могут быть группами помещены в ствол (Технически это можно сделать различными способами, но это уже выходит за рамки нашего разговора). Итоговая история может выглядеть так:: Neronyatkin 21.06.09 в 07:37 |
||
|
107: Fix bug found in testing X
Neronyatkin 21.06.09 в 07:38 |
||
|
Это уже гораздо лучше нежели случайным образом перемешанные ревизии, но все же несколько неудобно. Есть лучшее решение. Ветки могут быть объединены между собой образовав тем самым нелинейную историю. Результат мог бы выглядеть так:: Neronyatkin 22.06.09 в 00:11 |
||
|
102: Merge feature X
Neronyatkin 21.06.09 в 22:49 |
||
|
Или скорее всего так:: Neronyatkin 22.06.09 в 00:27 |
||
|
102: Merge feature X
Neronyatkin 21.06.09 в 22:49 |
||
|
Такой подход обладает многими преимуществами: Neronyatkin 22.06.09 в 00:32 |
||
|
* История проекта становится понятнее. Связанные изменения сгруппированны между собой и однозначно разделены. Neronyatkin 22.06.09 в 00:40 |
||
|
* Вы можете просто свернуть историю, чтобы увидеть ревизии относящиеся только к основной линии ветки. Когда Вы просматриваете историю ствола, вы видите цельную и последовательную историю составленную из ревизий высокого уровня (вместо множества ревизий, которые на данном уровне не представляют интереса) Neronyatkin 22.06.09 в 02:15 |
||
|
* Если понадобится, можно очень легко отменить изменения связанные с конкретной задачей. Neronyatkin 22.06.09 в 02:17 |
||
|
* Чтобы убедиться что все тесты проходят успешно, средства непрерывной
Neronyatkin 23.06.09 в 21:03 |
||
|
Итак, основные моменты: Neronyatkin 23.06.09 в 21:05 |
||
|
*Организация работы с использованием веток.* Neronyatkin 23.06.09 в 21:06 |
||
|
*Объединение изменений с использованием слияния* Neronyatkin 23.06.09 в 21:06 |
||
|
*Упорядоченные номера ревизий и иерархия делают историю легко отслеживаемой.* Neronyatkin 23.06.09 в 21:07 |
||
|
Каждая ветка имеет собственный вид истории
Neronyatkin 23.06.09 в 21:09 |
||
|
Как объяснено выше, Базар делает различие между: Neronyatkin 23.06.09 в 21:12 |
||
|
* ревизиями основной линии, т.е. те которые Вы зафиксировали в свою ветку, и Neronyatkin 23.06.09 в 21:19 |
||
|
* объединенными ревизиями, т.е. ревизии добавленные в следствии фиксации объединения. Neronyatkin 23.06.09 в 21:17 |
||
|
Каждая ветка в действительности имеет свой собственный вид истории,
Neronyatkin 23.06.09 в 21:23 |
||
|
Продолжим предыдущий пример, после того как Мария закончит
Neronyatkin 24.06.09 в 05:25 |
||
|
104: Merge mainline
Neronyatkin 21.06.09 в 22:49 |
||
|
Ещё раз. Для Марии достаточно посмотреть на верхний уровень
Neronyatkin 24.06.09 в 05:49 |
||
|
Важно помнить, что Bazaar не меняет ни текущую историю,
Neronyatkin 24.06.09 в 06:22 |
||
|
Несмотря на то, что в результате объединения локальным номерам
Neronyatkin 24.06.09 в 06:45 |
||
|
Примечание: Ревизии пронумерованы однозначным способом:
Neronyatkin 24.06.09 в 07:08 |
||
|
Резюме master 05.06.09 в 19:43 |
||
|
Обычно, если вы следовали ранее полученным советам - организовать вашу работу в ветках и использовать объединение для сотрудничества - вы обнаружите что обычно Bazaar делает то что вы ожидаете. master 05.06.09 в 19:42 |
||
|
В следующих главах, мы проверим различный способы использования Bazaar, начиная с самого простого: использование Bazaar для личных проектов. master 05.06.09 в 19:44 |
||
|
.. master 05.06.09 в 20:04 |
