Обратите внимание, что это hg log -l 1дает вам самый последний набор изменений, не обязательно тот, который вы сейчас обновили! Флаг -f ограничивает вывод журнала hg до предков текущего рабочего каталога, поэтому hg log -f -l1он ближе к тому, что вы хотите.
На случай, если люди пропустят приведенные ниже решения, если вы хотите использовать полный хэш: hg --debug id -iесли вы хотите, чтобы поддержка шаблонов использовалась, используйте hg parent --template '{node}' Не использовать hg log -l 1, это последний набор изменений репозитория, а не набор изменений текущей рабочей копии.
Joseph Lisee
7
Использование --debug в скриптах не рекомендуется, так как этот вывод менее тщательно контролируется из-за обратной совместимости. Воспользуйтесь шаблоном. Если вы хотите сделать это с журналом, используйте .точку в качестве версии.
Ry4an Brase
Спасибо Ry4an, я понятия не имел о "-r". ссылка на текущую ревизию рабочей копии. Кажется, это лучший ход, чем переключение с «журнала» на «родительский».
Joseph Lisee
Без проблем. hg help revisionsи hg help revsetsимеет несколько таких безумно мощных ярлыков.
Ry4an Brase
Но это не самый конкретный ответ на вопрос, потому что afaik hg id -iпечатает только короткую (12 символов) форму глобального хеш-идентификатора, а поскольку afaics не hg identifyхватает --templateafaics, нет способа извлечь только ревизию и ничего больше, так как на странице руководства это сказано печатает резюме.
Shelby Moore III,
41
hg --debug id -i
Будет выведен длинный хеш с плюсом, если есть незафиксированные изменения.
На странице руководства hg сказано, hg parentsчто УСТАРЕЛО , хотя, возможно, это могло быть не так, когда вы писали этот ответ. Если есть незафиксированное слияние, есть две родительские ревизии .
Shelby Moore III
2
Может ли кто-нибудь сказать нам, почему hg Родители устарели и что мы должны использовать вместо этого?
Винсент
17
Обобщая ответы и их ответы, кажется, что это лучший способ распечатать уникальный (не краткую форму) идентификатор текущей версии:
Хотел почти это, но с длинным хешем. Aliasing lidк log -l 1 --template '{node}\n'достигается именно это - напечатать полный идентификатор версии.
Майкл Экстранд
6
Это напечатает самый последний извлеченный набор изменений. Наш рабочий каталог может быть обновлен до более старого набора изменений. Чтобы распечатать набор изменений, до которого мы обновились, используйте «hg id». Единственная проблема в том, что "hg id" не поддерживает шаблоны и не имеет возможности распечатать длинный хеш (если кто-то не знает, как это сделать).
Eiver
1
Как сказал Эйвер, это не печатает фактическую версию в вашей рабочей копии, а только самую последнюю версию в вашем репозитории. Поскольку использование этого решения может привести к ошибкам отслеживания, я проголосовал за это решение.
Джозеф Лизи,
1
То же, что и Джо против. Также @Eiver используйте, hg --debug id -iкак сказано в другом месте.
AJP
3
Самая конкретная команда, не являющаяся УСТАРЕВШЕЙ, которая из-за наличия --templateможет печатать только информацию о версии, если требуется краткость (как подразумевается в вопросе):
Используйте hg log -r .для получения подробной информации, в отличие от использования hg id, вывод которого ограничен и не поддерживает шаблоны. Вы также можете создать небольшой псевдоним вроде here = log -r .и использовать hg here. Если вы хотите использовать только хеш hg log -r . --template '{node}\n'.
hg log -l 1
дает вам самый последний набор изменений, не обязательно тот, который вы сейчас обновили! Флаг -f ограничивает вывод журнала hg до предков текущего рабочего каталога, поэтомуhg log -f -l1
он ближе к тому, что вы хотите.Ответы:
Пытаться:
Пример:
источник
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, нет способа извлечь только ревизию и ничего больше, так как на странице руководства это сказано печатает резюме.Будет выведен длинный хеш с плюсом, если есть незафиксированные изменения.
источник
Вы можете использовать --template с родительской командой, я использую это, чтобы получить длинный хеш:
источник
hg parents
что УСТАРЕЛО , хотя, возможно, это могло быть не так, когда вы писали этот ответ. Если есть незафиксированное слияние, есть две родительские ревизии .Обобщая ответы и их ответы, кажется, что это лучший способ распечатать уникальный (не краткую форму) идентификатор текущей версии:
источник
.
(точка) отображает только первого родителя из двух родителей рабочей группы.См. Документацию , параграфы «Основы создания шаблонов» и последующие.
источник
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 и выберите «Копировать хеш» (согласно документации ).
источник