我正在写一个mercurial扩展,我需要存储少量的元数据。这是一个愚蠢的例子,但足以让这样的事情发挥作用:
$ hg myextension --set a=2
$ hg myextension --get a
2
如果克隆了repo,则无需复制此数据,但如果这样做很容易就可以了。
在mercurial扩展中执行此操作的正确方法是什么?是否有.hg下的文件夹,我可以创建任意文件或类似的东西?
答案 0 :(得分:4)
没有内置机制 - 每个扩展程序决定如何最好地存储数据。扩展通常将其数据存储在以自己命名的文件或目录中,因此您可以使用
.hg/myextension/
作为你的根。您可以使用repo.opener
打开该目录中的文件:
fp = repo.opener('myextension/state.json')
data = json.load(fp)
fp.close()