私は小さな 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
。デバッガーを使用すると、これを使用して filelog オブジェクトにアクセスできることがわかりました。
repo.file("text_file.txt")
しかし、ファイルの sha1 に到達するために何にアクセスすればよいかわかりません。適切な関数で作業していないのではないかと感じています。
追跡されたファイルへのパス (ファイルは の下で変更されたように表示される場合と表示されない場合があります) が与えられた場合hg status
、拡張子から sha1 を取得するにはどうすればよいですか?