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"?
Ответы
Ответ 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
, который станет "неактивным".
Не обращайте внимания на его активное/неактивное состояние, просто работайте с ним нормально.