如何使用mercurial扩展存储持久数据?

时间:2014-01-30 05:49:04

标签: mercurial mercurial-extension

我正在写一个mercurial扩展,我需要存储少量的元数据。这是一个愚蠢的例子,但足以让这样的事情发挥作用:

$ hg myextension --set a=2
$ hg myextension --get a
2

如果克隆了repo,则无需复制此数据,但如果这样做很容易就可以了。

在mercurial扩展中执行此操作的正确方法是什么?是否有.hg下的文件夹,我可以创建任意文件或类似的东西?

1 个答案:

答案 0 :(得分:4)

没有内置机制 - 每个扩展程序决定如何最好地存储数据。扩展通常将其数据存储在以自己命名的文件或目录中,因此您可以使用

.hg/myextension/

作为你的根。您可以使用repo.opener打开该目录中的文件:

fp = repo.opener('myextension/state.json')
data = json.load(fp)
fp.close()