Я недавно начал использовать подвижный для управления версиями в проекте Java. Когда я запускаю свою программу, входные параметры, которые она раньше производила бесспорный вывод, записаны в определенный файл. Было бы хорошо, если я мог бы добавить текущее подвижное changeset число (указание на версию моей программы) к тому выходному файлу также.
Каков был бы самый легкий способ сделать так в Windows? Я мог записать простой синтаксический анализатор Java для выборки вывода первой строки hg log -l 1
команда, но возможно существует более легкий путь (т.е. меньше строк кода)?
Вот мнение разработчиков Mercurial: Подстановка ключевых слов - почему она вам не нужна
Поскольку вы работаете в проекте Java, это может иметь отношение к вам. Я использую эту цель Ant для отображения информации о версии (идентификатор набора изменений Mercurial) в списке приложений на странице Tomcat Manager. Я просто помещаю идентификатор набора изменений в элемент display-name xml в моем web.xml.
<target name="build.release">
<exec executable="/usr/local/bin/hg" outputproperty="scm.version.tag.id">
<arg value="id"/>
<arg value="-i"/>
</exec>
<filter token="build.version.tag" value="${scm.version.tag.id}" />
<copy file="${web.home}/WEB-INF/web.xml" todir="${build.home}" filtering="true" />
</target>
Внутри web.xml есть токен в элементе display-name xml, например:
<display-name>My Webapp @build.version.tag@</display-name>
Вы можете использовать hg identify
.
hg id
должен быть на этапе упаковки, когда исходные коды зафиксированы и вы генерируете упакованную (jar) версию своего приложения.
На этом этапе вы можете создать файл version.txt с такой информацией.
$ MY_VERSION=$(hg id)
$ echo $MY_VERSION
53efa13dec6f+ tip
(см., Например, «идентификация сборки» для Python )