我正在尝试编写一个小的 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
将在 node 设置为 的情况下调用 whichrev 函数text_file.txt
。通过使用调试器,我发现我可以通过以下方式访问文件日志对象:
repo.file("text_file.txt")
但我不知道我应该访问什么才能访问文件的 sha1。我感觉我可能没有使用正确的功能。
给定跟踪文件的路径(该文件可能会或可能不会显示为已修改hg status
),我如何从我的扩展程序中获取它的 sha1?