Git JSON树。

git-json-tree的Python项目详细描述


https://img.shields.io/travis/jirikuncar/git-json-tree.svghttps://img.shields.io/coveralls/jirikuncar/git-json-tree.svghttps://img.shields.io/github/tag/jirikuncar/git-json-tree.svgDocumentation Statushttps://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 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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将cassandra中的行数据转换为与列相关的嵌套json   java如何使用jcr XPath在jcr:content/@jcr:data中搜索?   java在使用openCV进行安卓开发时如何利用手机的广角镜头   java解析扩展了接口,结束了一个潜在的无限循环   位置服务的@Override方法中存在java Android应用程序错误   java本地线程的用途和需求是什么   具有左右子访问的java节点树遍历   java验证JsonWebToken签名   JUL日志处理程序中的java日志记录   嵌入式Java读取给定时间段的串行数据。   java有没有办法从多个URL获取多个图像?   java线程通过等待intent阻止自己发送intent   java Spring MVC解析多部分内容请求   java JPA/Hibernate静态元模型属性未填充NullPointerException   java格式错误的字符(需要引号,得到I)~正在处理   java为什么PrintWriter对象抛出FileNotFoundException?   java Neo4j未正确保存标签   java IE不加载图像