跳转到主要内容

Git-JSON-Tree.

项目描述

https://img.shields.io/travis/jirikuncar/git-json-tree.svg https://img.shields.io/coveralls/jirikuncar/git-json-tree.svg https://img.shields.io/github/tag/jirikuncar/git-json-tree.svg Documentation Status https://img.shields.io/github/license/jirikuncar/git-json-tree.svg

将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-JSON-Tree的指针文件如下所示

version https://github.com/jirikuncar/git-json-tree/tree/v1
oid sha1:2f769492d6b634b86b82e916630da8a693e9c20e
size 12345

它跟踪您正在使用的Git-JSON-Tree版本,后面是JSON文件的唯一标识符(oid)。它还存储目标JSON文件的大小。

注意:

size是从编码后的JSON字符串计算得出的,可能因序列化程序版本不同而不同。

使用命令行

与存储的交互也可以通过命令行界面(CLI)进行。

首先,您需要确保您在一个Git仓库中或知道其位置。以下示例显示了您在一个Git仓库目录中的情况。

$ echo '{"hello": "world", "version": 1}' | git-json-tree encode
7123db01ad8c75a8df3508305bd891317ea36feb

按照上述示例,您可以为您的JSON对象创建第一个提交。

$ export FIRST=$(git commit-tree 7123db01 -m First)

记住树或commit sha1非常不切实际,因此我们可以给它一个参考名称。接下来的步骤使用名称 master,但你也可以决定使用自己的命名约定来跟踪对象的版本。每个文件都可以有自己的分支或只是一个单一的标签。

$ git update-ref refs/heads/master $FIRST  # for new object

存储新版本也非常简单。

$ export PARENT=$(git show-ref --hash refs/heads/master)
$ echo '{"hello": "world", "version": 2}' | git-json-tree encode
6f36c4272e88b14ab5e25a5419599534504c70fc
$ export SECOND=$(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

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

git-json-tree-0.1.0.dev20180216.tar.gz (30.9 kB 查看哈希值)

上传时间

构建分发

git_json_tree-0.1.0.dev20180216-py2.py3-none-any.whl (8.1 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下提供支持