Образовалась тут одна проблемка — у hg нет как такового номера ревизии, есть только ее id — длинное число. Вопрос — что делать с SvnRevision и версией сборок?
... << RSDN@Home 1.2.0 alpha 5 rev. 1537 on Windows 7 6.1.7601.65536>>
Здравствуйте, AndrewVK, Вы писали:
AVK>Образовалась тут одна проблемка — у hg нет как такового номера ревизии, есть только ее id — длинное число. Вопрос — что делать с SvnRevision и версией сборок?
В git я использую git describe: создаю тег из первых двух чисел версии, третье число считается автоматически как количество коммитов после последнего тега.
В mercurial это будет что-то вроде
hg log -r tip --template '{latesttag}.{latesttagdistance}\n'
Здравствуйте, RomikT, Вы писали:
RT>В mercurial это будет что-то вроде
hg log -r tip --template '{latesttag}.{latesttagdistance}\n'
Для этого надо, во-первых, поменять схему версионирования — у нас сейчас мажорная версия константой в исходниках задается. А во-вторых тогда получается, что теги можно использовать только для обозначения версий.
Впрочем, можно и так сделать, только непонятно, насколько latesttagdistance надежен и не получится ли такая ситуация, когда он погоду в африке выдавать будет.
... << RSDN@Home 1.2.0 alpha 5 rev. 1537 on Windows 7 6.1.7601.65536>>
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, RomikT, Вы писали:
RT>>В mercurial это будет что-то вроде
hg log -r tip --template '{latesttag}.{latesttagdistance}\n'
AVK>Для этого надо, во-первых, поменять схему версионирования — у нас сейчас мажорная версия константой в исходниках задается.
Тут одно другому не мешает, всё равно теги полезны будут. AVK>А во-вторых тогда получается, что теги можно использовать только для обозначения версий.
Точно, git describe умеет фильтровать теги по регэкспу. В меркуриале вроде NearestExtension тоже так умеет. AVK>Впрочем, можно и так сделать, только непонятно, насколько latesttagdistance надежен и не получится ли такая ситуация, когда он погоду в африке выдавать будет.
Вроде пишут что он выдаёт самый длинный путь, то есть он всегда будет возрастать но, видимо, не всегда на единицу.
Здравствуйте, RomikT, Вы писали:
AVK>>Для этого надо, во-первых, поменять схему версионирования — у нас сейчас мажорная версия константой в исходниках задается. RT>Тут одно другому не мешает, всё равно теги полезны будут.
Теги версий и в свн сейчас проставляются. Только помимо циферки у нас еще и текстовое название версии есть, типа "beta 3". Так что придется что то похитрее придумывать.
AVK>>А во-вторых тогда получается, что теги можно использовать только для обозначения версий. RT>Точно, git describe умеет фильтровать теги по регэкспу. В меркуриале вроде NearestExtension тоже так умеет.
Вот на экстеншены подвешивать билд точно не хотелось бы. Впрочем, отфильтровать то можно и в рукописной утилитке, но latesttagdistance на все эти фильтры пофик.
RT>Вроде пишут что он выдаёт самый длинный путь, то есть он всегда будет возрастать но, видимо, не всегда на единицу.
Тут проблема в том, что в разных репах эта чиселка может отличаться.
... << RSDN@Home 1.2.0 alpha 5 rev. 1537 on Windows 7 6.1.7601.65536>>
Здравствуйте, AndrewVK, Вы писали:
AVK>Образовалась тут одна проблемка — у hg нет как такового номера ревизии, есть только ее id — длинное число. Вопрос — что делать с SvnRevision и версией сборок?
Написал пакетный файл для сборки одного проекта, там такая последовательность вытаскивает ревизию из hg репозитория и ложит её в файл. Собственно for используется, чтобы полученную по команде ревизию положить в переменную.
Ревизией считаю то число, что показано в Hg Workbench.
...
:: определяем текущую ревизию
for /F %%i in ('hg id -n') do set REPO_REVISION=%%i
:: убираем +, если он есть
if "%REPO_REVISION:~-1%" == "+" set REPO_REVISION=%REPO_REVISION:~0,-1%
:: создаём файл custom_tags
echo VERSION : %REPO_REVISION%>%CUSTOM_TAGS%
echo TITLE : FIRS Industry Replacement Set %REPO_REVISION%>>%CUSTOM_TAGS%
...
"+" в конце бывает, когда локальный репозиторий модифицирован, но не зафиксирован. Его отрезаем.
Здравствуйте, AndrewVK, Вы писали:
AVK>Тут проблема в том, что в разных репах эта чиселка может отличаться.
Не уверен, по-моему для конкретной ревизии в любом репе чиселка будет одна и та же (если теги одинаковые), ведь история конкретной ревизии фиксирована.
Здравствуйте, RomikT, Вы писали:
RT>Не уверен, по-моему для конкретной ревизии в любом репе чиселка будет одна и та же (если теги одинаковые), ведь история конкретной ревизии фиксирована.
Вобщем, сделал по такой схеме, будем посмотреть.
... << RSDN@Home 1.2.0 alpha 5 rev. 1537 on Windows 7 6.1.7601.65536>>