Распечатать текущий Mercurial Revision Hash? - PullRequest
117 голосов
/ 21 марта 2010

Есть ли лучший способ извлечь текущий хэш ревизии в Mercurial, чем

hg log -l1|grep changeset|cut -d: -f3

?

Часть моего сценария развертывания веб-приложения "помечает" загруженное приложениеtarball с уникальным ревизионным хешем.

Ответы [ 8 ]

188 голосов
/ 21 марта 2010

Попробуйте:

hg id -i

Пример:

$ hg id -i
adc56745e928
40 голосов
/ 16 февраля 2012
hg --debug id -i

Это выведет длинный хеш с плюсом, если есть незафиксированные изменения.

20 голосов
/ 17 февраля 2012

Вы можете использовать --template с родительской командой, я использую это, чтобы получить длинный хеш:

hg parent --template '{node}'
14 голосов
/ 02 августа 2013

Обобщая ответы и их ответы, кажется, что это лучший способ напечатать уникальный идентификатор (не краткая форма) текущей версии:

hg log -l 1 --template '{node}\n' -r .
8 голосов
/ 21 марта 2010
hg log -l 1 --template '{node|short}\n'

См. документы , параграфы "Основы шаблонизации" и следующие.

3 голосов
/ 26 ноября 2015

Наиболее конкретная не УСТАРЕВАЕМАЯ команда, которая из-за присутствия --template может печатать только информацию о редакции, если требуется эта краткость (как подразумевается в вопросе):

hg log -l 1 -b . -T '{rev}:{node|short}\n'

Или для уникальной длинной формы хэша:

hg log -l 1 -r . -T '{node}\n'

-b . или branch(.) (точка для имени ветви) означает текущую рабочую ветвь каталога и -r . означает текущую версию рабочего каталога, которая задокументирована в hg help revsets и hg help revisions.

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

1 голос
/ 01 августа 2016

Как уже отмечали другие, не используйте log -l.

Используйте hg log -r . для получения подробной информации, в отличие от использования hg id, вывод которого ограничен и не поддерживает шаблоны.Вы также можете создать небольшой псевдоним, такой как here = log -r . и использовать hg here.Если вам нужен только хеш, используйте hg log -r . --template '{node}\n'.

0 голосов
/ 24 июля 2018

В случае использования TortoiseHg щелкните правой кнопкой мыши строку редакции в Workbench и выберите «Копировать хэш» (согласно документации ).

enter image description here

...