Я пытаюсь написать небольшое расширение Mercurial, которое, учитывая путь к объекту, хранящемуся в хранилище, сообщит вам ревизию, в которой оно находится. Пока что я работаю над кодом из статьи WritingExtensions , и у меня есть что-то вроде этого:
cmdtable = {
# cmd name function call
"whichrev": (whichrev,[],"hg whichrev FILE")
}
и функция whichrev почти не имеет кода:
def whichrev(ui, repo, node, **opts):
# node will be the file chosen at the command line
pass
Так, например:
hg whichrev text_file.txt
Будет вызывать функцию whichrev с установленным узлом text_file.txt
. С помощью отладчика я обнаружил, что могу получить доступ к объекту filelog, используя это:
repo.file("text_file.txt")
Но я не знаю, к чему мне обратиться, чтобы попасть в файл sha1. У меня такое ощущение, что я не могу работать с нужной функцией.
Учитывая путь к отслеживаемому файлу (файл может отображаться или не отображаться как измененный в hg status
), как я могу получить его sha1 из моего расширения?