面向模式文档的灵活可插入版本控制系统
zopyx.versioning的Python项目详细描述
zopyx.版本控制
zopyx.versioning是面向架构的通用版本控制系统 内容对象(zope.schema、原型、灵活性等)。
为什么要使用另一个版本控制系统?
在Zope世界中存在的版本化方法是:
条件
- 广泛使用
- 非常单一
- 与CMF的集成过于紧密
- 脆弱的实现
- 做得“太多”
- 以非常不妥协的方式“做得太多”
- 除了python pickle,没有后端序列化格式
- 仅基于zodb的后端
- 后端不可插入
基本概念
- 黄金法则1:保持简单,保持小巧
- 可插拔存储API(存储版本化数据)
- 使用json作为要版本化的对象之间的数据交换格式 和versioner以及versioner和后端存储(存储 可能使用不同的序列化格式(例如,zodb的“pickle 基于后端或“json”的典型nosql后端,如mongodb)
- 利用zope组件架构采用任意 存储API的内容对象
- 解决方案不声明存储和还原 内容对象。相反,我们专注于处理元数据和 内容本身。如果对象使用复杂的内部数据模型,则 负责将数据序列化和反序列化为json。
- 保留复杂的功能(可能处理引用、对象关系 等)超出核心版本控制引擎-这可以通过 实现iversionsupport的适配器。
开口点
- 应在存储层还是版本控制层上处理重复数据消除 (我假设存储层是一个可选特性,以便保持 整体复杂度低)< /李>
- 所有可版本化对象都必须提供唯一的id(UIDfor 原型支持内容)。灵巧怎么样?怎么样 基于模式的内容?
- 如何处理“大”内容。例如,基于MongoDB的后端在默认情况下 嵌入文档的4MB限制(通常足够标准内容,但是 不适用于图像等二进制内容)
更改日志
0.1.0(2010-07-09)
- 基于MongoDB的版本存储的初始版本
推荐PyPI第三方库
- 热门话题
- java如何拆分字符串(基于各种分隔符),但不保留空格? 解析。Json格式的txt文件和knime中的java java Spring rest api为什么在rest api调用的响应中更改了数据类型 升华文本3抛出java。lang.ClassNotFoundException,而记事本++不存在 java Android指纹扫描仪在尝试5次后停止工作? java Android如何设置精确的重复报警? java如何使用HTTPGET connect为access API输入用户名和密码 java当测试报告显示没有测试失败时,Gradle为什么说“有失败的测试”? 用Gson实现java获取响应 MapReduce程序中函数错误的java不可映射参数 java spring安全性不符合自动代理的条件 java GWT使用异步回调进行同步/阻塞调用 java奇怪的类数组问题无法在jsp中显示 如何在java中使用PrinterJob使用epl打印条形码 java如何在JTable中居中单元格 将Java Mockito测试转换为Kotlin html Java正则表达式模式匹配到多个相同标记 testCompile中缺少java Gradle(Android)多项目依赖项 在输入提示后输入字符串时发生java FileNotFoundException