LINUX.ORG.RU

Вопрос по бранчам в Mercurial


0

0

Добрый день,

Сделал с помощью команды branch еще одну ветку. Далее разработка идет в обоих ветках.

Иногда хочется новую проапдейтить ветку из основной, чтобы в конце разработки ветки облегчить слияние новой в основную.

Проблема в том, что при этом основная ветка помечается как inactive. В этом ничего страшного, но несколько неприятно.

Как вообще такое принято делать правильно? Я имею в виду обновление из основной ветки в бранч.

inactive - это ветка, у головного коммита которой есть дочерний коммит. Ничего страшного в этом нету, это ни на что не влияет.

Обновление делается обычным merge:

hg update your-branch

hg merge default

dmitry_vk ★★★ ()
Ответ на: комментарий от dmitry_vk

В таком простом случае - да, ничего страшного.

Представьте следующее: 2 бранча, 2 разработчика. 1) Разработчик A склонировал репозитарий разработчика B. 2) Разработчики сделали в каждом бранче по несколько коммитов (у себя в репозитариях). 3) Разработчик B решил смерджить бранчи. 4) Настало время объеденить то, что они по одтельности наразрабатывали. Разработчик A делает pull из B.

Получается, что у разработчика A будет 3 heads, а не 4. Т.о. он может потерять changeset-ы разработчика B в том бранче, из которого делался merge.

Kpoxman ★★ ()

Ветки в распределенных системах это как собаке пятая нога. Нафига оно нужно? Пусть каждый разработчик работает в своем репозитории, а потом они сливаются. Никакие ветки не нужны.

Reset ★★★★★ ()
Ответ на: комментарий от Reset

Такой подход не работает для более-менее сложных проектов.

Есть проект. В нем есть, скажем, stable и super_new_version бранчи. И все разработчики работают над всеми ветками. Все хотят видеть актуальное состояние каждой ветки.

Или вы что-то другое имеете в виду?

Kpoxman ★★ ()
Ответ на: комментарий от Reset

Никакие ветки не нужны.

Ветки таки нужны, для логического разделения версий продукта под разных клиентов например. А в рамках веток можно сливать репки ессно без проблем.

real_maverick ★★★ ()
Ответ на: комментарий от real_maverick

Это в рамках отдельных репозиториев отлично решается.

Reset ★★★★★ ()
Ответ на: комментарий от Kpoxman

Это тоже решается в рамках отдельных репозиториев.

Reset ★★★★★ ()
Ответ на: комментарий от Reset

> Никакие ветки не нужны.

Кстати да. Это всё гитовская зараза, Ъ используют отдельные репозитории.

tailgunner ★★★★★ ()
Ответ на: комментарий от tailgunner

Отдельные репозитарии в качестве бранчей решают проблему, да.

Правда есть и минусы у такого решения. Во-первых, необходимо ручками создать репозитарий для ветки, чтобы в него push-ить по https. Во-вторых, если репозитарий большой, то место расходуется неэкономно. Хардлинки при clone не всегда выход.

Кстати, я как раз сделал именованые ветки вместо репозитария именно из-за bitbucket. Там один репозитарий можно бесплатно хранить =) Да и заливать 300 мегабайт мало приятного.

Kpoxman ★★ ()
Ответ на: комментарий от Kpoxman

> я как раз сделал именованые ветки вместо репозитария именно из-за bitbucket. Там один репозитарий можно бесплатно хранить =)

Тогда ой :)

tailgunner ★★★★★ ()
Ответ на: комментарий от tailgunner

> Ъ используют отдельные репозитории.

И отдельные машины. :р

LamerOk ★★★★★ ()
Ответ на: комментарий от LamerOk

>> Ъ используют отдельные репозитории.

И отдельные машины. :р

...на отдельных планетах.

tailgunner ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.