Как получить текущую версию меркурийского вызова без вызова hg?
В Git текущий хэш сохраняется в
.git/refs/heads/master
Есть ли эквивалент в Mercurial, который не требует от меня вызова hg log -l1? Я знаю, что могу получить текущую ветвь в .hg/branch.
Это означает, что "отображать" текущий hg-хэш на экране при просмотре веб-страницы.
Ответы
Ответ 1
$ hg parents --template="{node}\n"
52b8cee1e59c91b9147635b7f44a3a8896ee0b00
$ hexdump -n 20 -e '1/1 "%02x"' .hg/dirstate
52b8cee1e59c91b9147635b7f44a3a8896ee0b00
Но почему вы не можете просто позвонить hg parents --template="{node}\n"
?
Ответ 2
hg id --debug -i -r .
Ответ 3
Я не эксперт по ртути, но, принимая подход кувалды и делая grep для текущего хеша редакции в .hg, вы получаете только одно возможное, а это .hg/branchheads.cache
.
Я считаю, что это кэширует все главы репозитория, поэтому может иметь несколько записей. По умолчанию я думаю, что он всегда будет иметь две записи, одну для ветки по умолчанию и одну для номера ревизии подсказки.
Я думаю, что branchheads.cache перестраивается при появлении новых наборов изменений, поэтому в нем всегда должен быть правильный текущий хеш изменений.