Git JSON树。
git-json-tree的Python项目详细描述
将json文件编码和解码为git树对象。
这是一个实验性的开发人员预览版本。
安装
pypi上提供了最新版本,可以使用 pip:
$ pip install git-json-tree
开发版本可以直接从git存储库安装:
$ pip install -e git+https://github.com/jirikuncar/git-json-tree.git#egg=git-json-tree
与Git集成
移动到一个存储库,在其中存储json文件和 向文件中添加以下行:
.git/config
[filter "git-json-tree"]smudge="git-json-tree smudge" clean = "git-json-tree clean" required # optional
.gitattributes
*.json filter=git-json-tree
指针文件格式
git git json树的指针文件如下:
version https://github.com/jirikuncar/git-json-tree/tree/v1 oid sha1:2f769492d6b634b86b82e916630da8a693e9c20e size 12345
它跟踪您正在使用的git json树的版本,然后是一个唯一的 json文件(oid)的标识符。它还存储目标json的大小 文件。
- 注释:
- size是根据编码的json字符串计算的,它可能不同 取决于序列化程序的版本。
使用命令行
与存储器的交互也可以通过命令行进行 接口(cli)。
首先,您需要确保您在git存储库中,或者 知道它的位置。这个例子显示了当您在目录中 使用git存储库。
$echo'{"hello": "world", "version": 1}'| git-json-tree encode 7123db01ad8c75a8df3508305bd891317ea36feb
按照上面的示例,您可以创建json对象的第一次提交。
$exportFIRST=$(git commit-tree 7123db01 -m First)
记住树或提交sha1是很不切实际的,因此我们可以给它 参考名称。接下来的步骤使用名称master,但是您可以决定 使用您自己的命名约定来跟踪对象的版本。每个 文件可以有自己的分支,也可以只有一个标记。
$ git update-ref refs/heads/master $FIRST# for new object
存储新版本也非常简单。
$exportPARENT=$(git show-ref --hash refs/heads/master)$echo'{"hello": "world", "version": 2}'| git-json-tree encode 6f36c4272e88b14ab5e25a5419599534504c70fc $exportSECOND=$(git commit-tree 6f36c4272e -m Second -p $PARENT)$ git update-ref refs/heads/master $SECOND
最后,您可以检索和解码树或提交。
$ git-json-tree decode # HEAD $ git-json-tree decode $FIRST# commit $ git-json-tree decode 7123db01 # tree id