Respostas:
Experimentar:
hg id -i
Exemplo:
$ hg id -i
adc56745e928
hg --debug id -ise desejar o suporte ao modelo, use hg parent --template '{node}' Não use hg log -l 1, é o mais recente conjunto de alterações do repositório, não o conjunto de alterações atual da cópia de trabalho.
.ponto como revisão.
hg help revisionse hg help revsetstem alguns atalhos poderosos e loucos como esse.
hg id -iimprime apenas a forma abreviada (12 caracteres) do hash id global e, como hg identifycarece de --templateafaics, não há como extrair apenas a revisão e nada mais, já que a página de manual diz isso imprime um resumo.
hg --debug id -i
Isso produzirá o hash longo, com uma vantagem se houver alterações não confirmadas.
Você pode usar --template com o comando pai, eu uso isso para obter o hash longo:
hg parent --template '{node}'
hg parents: DEPRECATED , embora talvez esse não tenha sido o caso quando você escreveu esta resposta. Se houver uma mesclagem não confirmada, há duas revisões pai .
Resumindo as respostas e suas respostas, parece que esta é a melhor maneira de imprimir o identificador exclusivo (não abreviado) da versão atual :
hg log -l 1 --template '{node}\n' -r .
.(ponto) exibirá apenas o primeiro pai de dois pais do grupo de trabalho.
hg log -l 1 --template '{node|short}\n'
Consulte os documentos , parágrafos "Noções básicas de modelos" e seguintes.
lidpara log -l 1 --template '{node}\n'conseguir exatamente isso - imprima o ID da revisão completa.
hg --debug id -icomo é dito em outro lugar.
O comando não DEPRECATED mais específico que, devido à presença de, --templatepode imprimir apenas informações de revisão se essa concisão for necessária (conforme implícito na pergunta):
hg log -l 1 -b . -T '{rev}:{node|short}\n'
Ou para uma forma longa e exclusiva de hash:
hg log -l 1 -r . -T '{node}\n'
O -b .ou branch(.)(ponto para o nome da ramificação) significa a ramificação atual do diretório de trabalho e -r .a revisão atual do diretório de trabalho, documentada em hg help revsetse hg help revisions.
Observe que se houver uma mesclagem não confirmada , o .(ponto) exibirá apenas o primeiro pai de dois pais do grupo de trabalho.
Como outros já apontaram, não use log -l.
Use hg log -r .para obter informações detalhadas, em vez de usar hg idcuja saída é limitada e não suporta modelos. Você também pode criar um pequeno apelido como here = log -r .e usar hg here. Se você deseja apenas o uso de hash hg log -r . --template '{node}\n'.
Caso o TortoiseHg seja usado, clique com o botão direito do mouse na linha de revisão no Workbench e selecione "Copy hash" (conforme a documentação ).
hg log -l 1você fornece o conjunto de alterações mais recente, não necessariamente aquele para o qual você está atualizado no momento! O sinalizador -f limita a saída do log hg aos ancestrais do diretório de trabalho atual, portanto,hg log -f -l1está mais próximo do que você deseja.