Git tag версия выпуска? - PullRequest
5 голосов
/ 28 марта 2012

Предварительная версия МОЖЕТ быть обозначена добавлением тире и серии разделенных точками идентификаторов сразу после версии патча.Примеры: 1.0.0-alpha, 1.0.0-alpha.1, 1.0.0-0.3.7, 1.0.0-x.7.z.92.

semver.org

В целях устранения неоднозначности, что было бы "правильным" способом пометить коммит релиза (коммит из основной ветки)?

Некоторые идеи

v1.7.2-release
v1.7.2-master
v1.7.2-prod
v1.7.2-official
v1.7.2-stable

github.com / antirez / redis / tags

1 Ответ

8 голосов
/ 28 марта 2012

Вы можете выбрать политику, аналогичную самой Git (см. Ее теги в репозитории GitHub ):

v1.7.2-rc0
v1.7.2-rc1
v1.7.2-rc2
v1.7.2-rc3
v1.7.2

Идея (как описано в Выбор хорошей версииполитика нумерации ) может идти по следующим направлениям:

Ветка 'master' будет содержать код, помеченный как готовый к работе в данный момент, 'master'должен быть всегда компилируемым.
Код в ветви' master 'должен иметь четный номер тега.

Для номера версии он будет создан с помощью команды git description, так как он является сортировкойстандарта де-факто.

См. Канонические номера версий с Git :

git describe –tags –long

Это дает вам строку типа (в случаеодин из моих проектов)

2.1pre5-4-g675eae1

, который отформатирован как

{last reachable tag name}-{# of commits since that tag}-#{SHA of HEAD}

Это дает вам «канонический номер версии» (орфографияисправлено), которое монотонно увеличивается за счет коммитов и уникально для нескольких репозиториев разработки.Если мы все находимся в одном и том же HEAD, он вернет одно и то же значение.Если у всех нас будет один и тот же самый последний тег, но у нас разные коммиты, SHA будет другим.

Вы можете стремиться к тому, чтобы на master были только номера версий, такие как

* 1041.*

(т. Е. Только коммит с тегами)

Но идея заключается в том, что этот тип номера версии (тег + SHA) полностью однозначен.

...