Ответы:
Пытаться:
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
хватает --template
afaics, нет способа извлечь только ревизию и ничего больше, так как на странице руководства это сказано печатает резюме.
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
он ближе к тому, что вы хотите.