Ответы:
Пытаться:
hg id -i
Пример:
$ hg id -i
adc56745e928
hg --debug id -iесли вы хотите, чтобы поддержка шаблонов использовалась, используйте hg parent --template '{node}' Не использовать hg log -l 1, это последний набор изменений репозитория, а не набор изменений текущей рабочей копии.
.точку в качестве версии.
hg help revisionsи hg help revsetsимеет несколько таких безумно мощных ярлыков.
hg id -iпечатает только короткую (12 символов) форму глобального хеш-идентификатора, а поскольку afaics не hg identifyхватает --templateafaics, нет способа извлечь только ревизию и ничего больше, так как на странице руководства это сказано печатает резюме.
hg --debug id -i
Будет выведен длинный хеш с плюсом, если есть незафиксированные изменения.
Вы можете использовать --template с родительской командой, я использую это, чтобы получить длинный хеш:
hg parent --template '{node}'
hg parentsчто УСТАРЕЛО , хотя, возможно, это могло быть не так, когда вы писали этот ответ. Если есть незафиксированное слияние, есть две родительские ревизии .
Обобщая ответы и их ответы, кажется, что это лучший способ распечатать уникальный (не краткую форму) идентификатор текущей версии:
hg log -l 1 --template '{node}\n' -r .
.(точка) отображает только первого родителя из двух родителей рабочей группы.
hg log -l 1 --template '{node|short}\n'
См. Документацию , параграфы «Основы создания шаблонов» и последующие.
lidк log -l 1 --template '{node}\n'достигается именно это - напечатать полный идентификатор версии.
hg --debug id -iкак сказано в другом месте.
Самая конкретная команда, не являющаяся УСТАРЕВШЕЙ, которая из-за наличия --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.
Обратите внимание, что если есть незафиксированное слияние , .(точка) отображает только первого родителя из двух родителей рабочей группы.
Как указывали другие, не используйте log -l.
Используйте hg log -r .для получения подробной информации, в отличие от использования hg id, вывод которого ограничен и не поддерживает шаблоны. Вы также можете создать небольшой псевдоним вроде here = log -r .и использовать hg here. Если вы хотите использовать только хеш hg log -r . --template '{node}\n'.
Если используется TortoiseHg, щелкните правой кнопкой мыши строку ревизии в Workbench и выберите «Копировать хеш» (согласно документации ).
hg log -l 1дает вам самый последний набор изменений, не обязательно тот, который вы сейчас обновили! Флаг -f ограничивает вывод журнала hg до предков текущего рабочего каталога, поэтомуhg log -f -l1он ближе к тому, что вы хотите.