LINUX.ORG.RU
 
Kpoxman

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


0

0

Добрый день,

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

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

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

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


[#]  

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

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

hg update your-branch

hg merge default

** ()
[#] Ответ на: комментарий от dmitry_vk 23.05.2010 22:16:48  
Kpoxman

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

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

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

** ()
[#]  
Reset

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

***** ()
[#] Ответ на: комментарий от Reset 24.05.2010 10:24:50  
Kpoxman

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

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

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

** ()
[#] Ответ на: комментарий от Reset 24.05.2010 10:24:50  
real_maverick

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

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

*** ()
[#] Ответ на: комментарий от real_maverick 24.05.2010 19:18:44  
Reset

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

***** ()
[#] Ответ на: комментарий от Kpoxman 24.05.2010 19:07:26  
Reset

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

***** ()
[#] Ответ на: комментарий от Reset 24.05.2010 10:24:50  

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

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

***** ()
[#] Ответ на: комментарий от tailgunner 24.05.2010 19:47:23  
Kpoxman

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

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

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

** ()
[#] Ответ на: комментарий от Kpoxman 24.05.2010 20:54:09  

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

Тогда ой :)

***** ()
[#] Ответ на: комментарий от tailgunner 24.05.2010 19:47:23  

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

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

**** ()
[#] Ответ на: комментарий от LamerOk 25.05.2010 15:48:37  

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

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

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

***** ()
[#] Ответ на: комментарий от tailgunner 25.05.2010 16:00:45  

В параллельных вселенных. ))

**** ()