Я бы пометил код с номерами версий, как вы, например, 1.0
, 2.0
и так далее. Для веток обслуживания я бы использовал 1.x
, 2.x
и т. Д.
В этом случае тег 1.1
будет сделан для ветви 1.x
, а набор изменений 1.0
является точкой ветвления для ветви 1.x
. Его нет в ветке, поскольку вы создаете ветку 1.x
только тогда, когда вам нужно сделать релиз исправления 1.1
.
Наконец, вы можете использовать revset language для различения тега и ветви:
$ hg log -r 'branch(foo)'
$ hg log -r 'tag(foo)'