#mercurial #tags #branch
#mercurial #Теги #ветвь
Вопрос:
Я создал ветку и тег с одинаковым именем: 0.2.0. Я столкнулся с некоторыми проблемами при объединении, но сумел их преодолеть, используя -r и предоставляя явную ревизию. Так что это не мой вопрос, что делать. Скорее я хотел бы знать: предлагается ли использовать разные имена для ветки и тега при создании новой версии? Существуют ли какие-либо стандартные имена для этих тегов и ветвей?
Ответ №1:
Я бы пометил код номерами версий, как это делаете вы, например, 1.0
, 2.0
и так далее. Для ветвей обслуживания я бы использовал 1.x
, 2.x
и т.д.
1.1
Тег затем будет создан на 1.x
ветке, а 1.0
набор изменений является точкой разветвления для 1.x
ветки. Этого нет в ветке, поскольку вы создаете 1.x
ветку только тогда, когда вам нужно выпустить 1.1
исправление ошибок.
Наконец, вы можете использовать язык revset для различения тега и ветви:
$ hg log -r 'branch(foo)'
$ hg log -r 'tag(foo)'
Комментарии:
1. Это скрыто где-нибудь в документации mercurial?
Ответ №2:
За возможным исключением default
, в Mercurial нет стандартных имен для ветвей или тегов. Ваша схема именования ветвей / тегов будет продиктована вашим процессом разработки.
Однако я не думаю, что использовать одно и то же имя для именованной ветви и тега — хорошая идея. Обычно вы можете выполнить, hg update <name>
и пока <name>
соответствует либо именованной ветви, либо тегу, Mercurial разрешит имя и доставит вас туда. Но, если у вас есть и ветвь, и тег с одинаковым именем, он не сможет провести различие между ними и приведет вас к одному. Конечно, вы могли бы указать ревизию явно, но это сводит на нет удобство использования имен.