HG и номер ревизии
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 27.11.11 13:29
Оценка: 12 (1)
Образовалась тут одна проблемка — у hg нет как такового номера ревизии, есть только ее id — длинное число. Вопрос — что делать с SvnRevision и версией сборок?
... << RSDN@Home 1.2.0 alpha 5 rev. 1537 on Windows 7 6.1.7601.65536>>
AVK Blog
Re: HG и номер ревизии
От: RomikT Германия  
Дата: 27.11.11 14:02
Оценка: 30 (1)
Здравствуйте, AndrewVK, Вы писали:

AVK>Образовалась тут одна проблемка — у hg нет как такового номера ревизии, есть только ее id — длинное число. Вопрос — что делать с SvnRevision и версией сборок?


В git я использую git describe: создаю тег из первых двух чисел версии, третье число считается автоматически как количество коммитов после последнего тега.
В mercurial это будет что-то вроде
hg log -r tip --template '{latesttag}.{latesttagdistance}\n'
Re[2]: HG и номер ревизии
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 27.11.11 14:32
Оценка:
Здравствуйте, 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>>
AVK Blog
Re[3]: HG и номер ревизии
От: RomikT Германия  
Дата: 27.11.11 15:43
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, RomikT, Вы писали:


RT>>В mercurial это будет что-то вроде
hg log -r tip --template '{latesttag}.{latesttagdistance}\n'

AVK>Для этого надо, во-первых, поменять схему версионирования — у нас сейчас мажорная версия константой в исходниках задается.
Тут одно другому не мешает, всё равно теги полезны будут.
AVK>А во-вторых тогда получается, что теги можно использовать только для обозначения версий.
Точно, git describe умеет фильтровать теги по регэкспу. В меркуриале вроде NearestExtension тоже так умеет.
AVK>Впрочем, можно и так сделать, только непонятно, насколько latesttagdistance надежен и не получится ли такая ситуация, когда он погоду в африке выдавать будет.
Вроде пишут что он выдаёт самый длинный путь, то есть он всегда будет возрастать но, видимо, не всегда на единицу.
Re[4]: HG и номер ревизии
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 27.11.11 16:01
Оценка:
Здравствуйте, 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>>
AVK Blog
Re: HG и номер ревизии
От: akasoft Россия  
Дата: 27.11.11 16:39
Оценка:
Здравствуйте, 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%
...


"+" в конце бывает, когда локальный репозиторий модифицирован, но не зафиксирован. Его отрезаем.
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>> SQL Express 2008 R2
Re[5]: HG и номер ревизии
От: RomikT Германия  
Дата: 27.11.11 17:26
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Тут проблема в том, что в разных репах эта чиселка может отличаться.


Не уверен, по-моему для конкретной ревизии в любом репе чиселка будет одна и та же (если теги одинаковые), ведь история конкретной ревизии фиксирована.
Re[6]: HG и номер ревизии
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 27.11.11 17:41
Оценка:
Здравствуйте, RomikT, Вы писали:

RT>Не уверен, по-моему для конкретной ревизии в любом репе чиселка будет одна и та же (если теги одинаковые), ведь история конкретной ревизии фиксирована.


Вобщем, сделал по такой схеме, будем посмотреть.
... << RSDN@Home 1.2.0 alpha 5 rev. 1537 on Windows 7 6.1.7601.65536>>
AVK Blog
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.