Подтвердить что ты не робот

Mercurial: сохранить ветку по умолчанию "active"

Я использую mercurial с именованными ветвями и замечаю, что при создании новой ветки по умолчанию значение по умолчанию помечено как неактивная ветвь. Например:

C:\data\solutions\test-repo>hg branches
default                        0:aeec280e6310

C:\data\solutions\test-repo>hg branch feature-branch
marked working directory as branch feature-branch

C:\data\solutions\test-repo>hg com -m "created new branch"

C:\data\solutions\test-repo>hg branches
feature-branch                 1:1cb18d7fa554
default                        0:aeec280e6310 (inactive)

Это проблема, потому что наша система развертывания показывает именованные ветки, которые являются активными, из которых можно развернуть.

Как я могу сохранить свою ветку по умолчанию "active"?

4b9b3361

Ответ 1

Понятие "активных" и "неактивных" ветвей - это то, от чего мы отходим от проекта Mercurial. Проблема в том, что ветки могут перемещаться назад и вперед между двумя состояниями более или менее случайным образом и в неудобные моменты - как вы только что видели.

Вместо этого мы теперь фокусируемся на "открытых" и "закрытых". Это явное понятие: чтобы закрыть ветвь ветки, вы делаете

$ hg update feature-branch
$ hg commit --close-branch -m "passes all tests, ready for merging"

Это добавит специальный набор изменений, который помечает главу ветки как закрытую. Когда все головки на ветке закрыты, сама ветвь считается закрытой и исчезает из hg branches. Я рекомендую закрыть перед слиянием, пожалуйста, см. Мое названное руководство по филиалу для более длинного примера.

Поэтому я предлагаю вам изменить систему развертывания, чтобы показать открытые ветки (hg branches) вместо активных ветвей (hg branches --active).

Ответ 2

Неактивный означает, что у него нет головы.

В вашем случае график выглядит следующим образом:

default:        0 -\
feature-branch:     \- 1 --- *

* означает "рабочий каталог

Когда вы делаете больше исправлений в своей функции (например, узлы 2 и 3), это будет аспект:

default:        0 -\
feature-branch:     \- 1 --- 2 --- 3 ---- *

Если вы хотите интегрировать feature-branch в default только обновление до default

default:        0 -\--------------------- *
feature-branch:     \- 1 --- 2 --- 3

а затем слить feature-branch в default:

default:        0 -\-------------------/- *
feature-branch:     \- 1 --- 2 --- 3 -/

Тот факт, что он выглядит "неактивным", не означает, что вы не можете с ним работать. Например, ваши "сценарии развертывания" могут иметь hg update --clean default, которые отлично работают, даже если они выглядят как "неактивные".

Неактивный просто означает, что у него нет голов. Ничего больше. После слияния он станет активным, и он будет feature-branch, который станет "неактивным".

Не обращайте внимания на его активное/неактивное состояние, просто работайте с ним нормально.