Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Git и номер версии

362  
AlexNek патриот08.10.17 23:22
AlexNek
08.10.17 23:22 
Последний раз изменено 08.10.17 23:36 (AlexNek)

Давно уже размышлял как бы это перебросить с SVN, но вот натолкнулся на проектик. Выглядит заманчиво.

https://gitversion.readthedocs.io/en/latest/

http://semver.org/lang/ru/

Кто уже пользует? Какие впечатления?


Вот другое решение

http://blog.alexei-developer.ru/?p=913


#1 
dymanoid знакомое лицо09.10.17 08:29
dymanoid
NEW 09.10.17 08:29 
в ответ AlexNek 08.10.17 23:22, Последний раз изменено 09.10.17 08:30 (dymanoid)

Я использовал. Был очень доволен. Пара небольших багов есть, решается чисткой кеша.

#2 
AlexNek патриот09.10.17 18:22
AlexNek
NEW 09.10.17 18:22 
в ответ dymanoid 09.10.17 08:29

Я правда пока не совсем врубился когда она версию увеличивает, если сам версию не меняешь.


Хотя сегодня наконец отдали нам сервер на растерзание - возник вопрос какой именно Гит сервер пользовать нашли этот сборник

https://secure.phabricator.com/

Вроде тоже неплохо выглядит

#3 
dymanoid знакомое лицо09.10.17 19:45
dymanoid
NEW 09.10.17 19:45 
в ответ AlexNek 09.10.17 18:22

Версию вручную менять обычно не требуется. Номер версии автоматически вычисляется исходя из текущей ветки, номера коммита и т.п. Там хитрая система. Версия применяется при билде с помощью интеграции в MSBuild. Таким образом, любые собранные бинарники из любой ветки и из любого коммита имеют однозначно идентифицируемую версию - в этом и удобство. Сделал чекаут, собрал - номер версии проставился автоматом.

#4 
AlexNek патриот09.10.17 23:17
AlexNek
NEW 09.10.17 23:17 
в ответ dymanoid 09.10.17 19:45
Там хитрая система.

Это я понял. Меня смущает первый вопрос

Why is my version not incrementing?

GitVersion calculates the semantic version, this will only change once per release.


https://gitversion.readthedocs.io/en/latest/faq/


потому как хочется иметь номер бильда - Semantic Versioning is all about releases, not builds

#5 
Simple Nothing is f*cked10.10.17 09:21
Simple
NEW 10.10.17 09:21 
в ответ AlexNek 08.10.17 23:22

У нас номер версии билда генерится CI.

#6 
AlexNek патриот10.10.17 18:28
AlexNek
NEW 10.10.17 18:28 
в ответ Simple 10.10.17 09:21
У нас номер версии билда генерится CI

А он откуда ее берет? Нужен номер билда для каждой ДЛЛ-ки из проекта.

Для SVN проблем никаких особых проблем не было.

#7 
Simple Nothing is f*cked12.10.17 21:30
Simple
NEW 12.10.17 21:30 
в ответ AlexNek 10.10.17 18:28

n +=1 :) Номер билда выдается в переменной окружения.

#8 
AlexNek патриот12.10.17 22:35
AlexNek
NEW 12.10.17 22:35 
в ответ Simple 12.10.17 21:30

Ну да СИ rebuild all не делает, может прокатить. И на новом компе с исходников не надо компилить.

#9 
Simple Nothing is f*cked12.10.17 23:14
Simple
NEW 12.10.17 23:14 
в ответ AlexNek 12.10.17 22:35

А чем у вас билд делается? Господи, как вспомню этот кошмар, так плохо становится.

#10 
AlexNek патриот12.10.17 23:34
AlexNek
NEW 12.10.17 23:34 
в ответ Simple 12.10.17 23:14

Пока есть только один рабочий вариант - свой лэптоп.

Потому как разных проектов десятки и в основном на территории заказчика. А блокировать там любят всё, либо просто приема может не быть в помещении.


А отчего кошмар? На "жирных" проектах проблемы бывают, но не до такой степени.

#11 
Simple Nothing is f*cked12.10.17 23:39
Simple
NEW 12.10.17 23:39 
в ответ AlexNek 12.10.17 23:34

Я помню, как писал CMake-билд для одного проекта на 500к loc. Теперь я написал билд для одного легаси проекта на джаве на gradle. Разница колоссальная не в пользу CMake.

#12 
AlexNek патриот12.10.17 23:50
AlexNek
NEW 12.10.17 23:50 
в ответ Simple 12.10.17 23:39

тогда понятно. Хотя с СИ тоже самое.

Был на одном проекте вначале бесплатный и пока был человечек который всё сделал с нуля и поддерживал особых проблем не было.

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

#13 
Simple Nothing is f*cked13.10.17 12:25
Simple
NEW 13.10.17 12:25 
в ответ AlexNek 12.10.17 23:50

Я имел в виду не CI, тут как раз все нормально (можно подвязать любую), а именно систему сборки.

#14 
Simple Nothing is f*cked26.10.17 11:08
Simple
NEW 26.10.17 11:08 
в ответ AlexNek 08.10.17 23:22

Кстати, нашел случайно еще: https://habrahabr.ru/post/321668/?utm_source=habrahabr&utm...

#15 
AlexNek патриот27.10.17 00:00
AlexNek
NEW 27.10.17 00:00 
в ответ Simple 26.10.17 11:08

Спасибо, что не забыли, но похоже это больше для Явы, чем для .НЕТа

#16 
dymanoid знакомое лицо27.10.17 00:15
dymanoid
NEW 27.10.17 00:15 
в ответ AlexNek 27.10.17 00:00, Последний раз изменено 27.10.17 00:18 (dymanoid)

У нас номер билда автоматически проставлялся. Вернее, брался из номера коммита. Получались номера что-то типа 1.2.3-hotfix1+456, где 456 и есть номер билда.

Может, они поменяли там всё, конечно. Я уже 2 года как не занимался этим.

#17 
AlexNek патриот27.10.17 00:30
AlexNek
NEW 27.10.17 00:30 
в ответ dymanoid 27.10.17 00:15
где 456 и есть номер билда

И как его из Гита без плясок с бубном получить? Может у Вас SVN был?

#18 
dymanoid знакомое лицо27.10.17 00:43
dymanoid
NEW 27.10.17 00:43 
в ответ AlexNek 27.10.17 00:30, Последний раз изменено 27.10.17 00:43 (dymanoid)

Нет, был обычный git, даже не gitlab и не github. К сожалению, по конфигам ничего не могу сказать... Сам репозиторий я не конфигурил, а в солюшен добавил GitVersion через NuGet, и оно само заработало как-то. Не помню, ковырял ли я конфиги самой GitVersion...

Только надо понимать, что эти циферки прописываются в метаданные, то есть в "текстовую" версию. В обычную версию в ресурсах пишется только major.minor.patch, без билда.

#19 
AlexNek патриот27.10.17 00:49
AlexNek
NEW 27.10.17 00:49 
в ответ dymanoid 27.10.17 00:43
а в солюшен добавил GitVersion

Вот в этом то собака и зарыта

#20