Mercurial: оставить ветку по умолчанию "активной" - PullRequest
13 голосов
/ 05 января 2012

Я использую 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)

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

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

Ответы [ 2 ]

22 голосов
/ 05 января 2012

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

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

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

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

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

14 голосов
/ 21 февраля 2013

Inactive only означает, что у него нет головы.

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

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, который станет "неактивным".

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

...