写点什么

Veracity,构建在分布式数据库上的分布式版本控制系统

  • 2011-07-27
  • 本文字数:1174 字

    阅读完需:约 4 分钟

Veracity 是一个能够运行在 Windows、Mac 和 Linux 平台上的分布式版本控制系统,它采用了分布式数据库来作为存储库。

Veracity 已经进行了一年多的测试工作,现在最新的版本是 0.9.1 版。这已经是时候让它登上舞台了。它在很多方面都和 Git 或者 Mercurial 很相似,但是也有一些区别。我们和 Eric Sink 探讨了这些差异,Eric 是 SourceGear 的创始人,正是这家公司支持着 Veracity 的开发。他告诉我们他们的分布式版本控制系统支持去中心化的数据库:

Veracity 的一个显著特性便是它的“去中心化数据库”。大多数版本控制工具都设计成可以管理面向文件系统的数据,这些数据可以组织成目录和文件,当然 Veracity 也可以做到这点,并且它还能够管理那些面向数据库的数据,也就是说这些数据可以组织成记录和字段。和处理文件系统数据一样,Veracity 的去中心化数据库也保存了数据库的所有历史。每条记录的每一个版本都保留在历史中,例如日志信息还记录了谁在什么时候做出的改变。Veracity 还支持推送和拉取“数据库变更集”,包括自动合并(在记录或者字段级)和解决违反约束条件。 这种能力便是数据库“去中心化”的基础。

用户可以为他们的 Veracity 存储库选择不同的数据库,Sink 描述道:

Veracity 通过 API 和底层存储库实例进行信息交互,这个 API 隐藏了数据存储的所有细节。这样设计的目的是用户可以选择如何存储数据。Veracity 的最新版本仅仅支持众多存储库插件中的一种 - FS3。它能够支持将 blob(二进制大型对象)存储在文件中(每个文件能够存储多达 1G 的 blob 数据),然后使用 SQLite 数据库来跟踪对象的存储位置。

我们已经开发出一些存储层的原型,这些原型能够将所有东西都保存在一个企业级的 SQL 数据库中。这些组件将来可以从 SourceGear 获得。有些可能将不会采取开源形式发布。

Veracity 支持在不同的存储库实例之间复制 / 推送 / 拉取信息,即使这些实例是运行在不同的存储层实现上。例如 Veracity 团队的中心数据库的存储库实例是 Oracle 数据库(如果我们有的话),而开发者的桌面系统却采用 FS3,这种情况下,这些实例之间的通信和信息交互不会有任何问题。

Veracity 是使用 C 和 JavaScript 编写,由 CMake 构建,并且有能够运行在 Windows、Mac 和 Linux 的程序代码遵守Apache 2 许可证并且开源。有一个公共存储库可供有兴趣的开发者查看用户界面是什么样的。

不过现在仍然有些工作要做,例如将其集成到Visual Studio 和Eclipse 中,添加快速导入/ 导出,子模块,wiki 等其他功能,但是Sink 说Veracity 的代码已经足够稳定,将来的版本肯定会兼容现在的存储库。1.0 版将会在1 周之后召开的 OSCON 2011 上发布。

另外要说的是,SourceGear 创建了 Vault,这是一个主要面向 Windows 的版本控制系统,目标是取代微软的 SourceSafe。

查看英文原文: Veracity, a New DVCS Based on a Distributed Database

2011-07-27 12:562284
用户头像

发布了 90 篇内容, 共 39.3 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

MyEMS:智能化能源管理的创新实践

开源能源管理系统

开源 能源管理系统

YashanDB结合人工智能提升数据库智能管理水平

数据库砖家

YashanDB开发者教程:快速上手企业级数据库编程

数据库砖家

YashanDB跨平台数据迁移教程,轻松实现系统升级

数据库砖家

5分钟入门微信小游戏开发(四)

扬_帆_起_航

游戏开发 独立游戏开发

YashanDB连接池配置优化及多线程操作最佳实践

数据库砖家

仓颉之函数的魔法宝典

华为云开发者联盟

函数 仓颉 华为开发者空间

CST电路监视器第二讲-CST软件教程

思茂信息

cst CST软件 CST Studio Suite

gRPC凭什么成为微服务通信首选?深度解析RPC进化史

左诗右码

AI背诵APP的开发流程详解

北京木奇移动技术有限公司

软件外包公司 AI英语学习 AI背诵

YashanDB快速入门:从零开始搭建分布式数据库

数据库砖家

AI大模型×政务热线:数造科技打造企业动态画像的“实时监测引擎”

数造万象

数据 企业 政务 数字化案例 人工智能、

YashanDB跨平台部署指南,适应企业多样化环境

数据库砖家

YashanDB连接池配置与优化技巧

数据库砖家

YashanDB配置优化,提升数据库整体性能

数据库砖家

基于开发者空间GaussDB完成AI智能索引和参数自调优实践

华为云开发者联盟

sql Gauss DB 华为开发者空间

主流内网聊天工具,谁才是企业的最佳选择?

BeeWorks

即时通讯 IM 私有化部署

抖音视频详情API秘籍!轻松获取视频详情数据

tbapi

抖音API 抖音视频数据采集 抖音视频详情API

如何批量杀死 Apache DolphinScheduler 运行中的工作流?

白鲸开源

大数据 开源 工作流 Apache DolphinScheduler 数据调度

MyEMS:以数字化引擎驱动能源管理革新,重塑绿色发展新动能

开源能源管理系统

开源 能源管理系统

YashanDB跨数据中心灾备构建方法详解

数据库砖家

YashanDB面向物联网的数据处理优势分析

数据库砖家

开发者空间FastGPT问答系统实战:知识库检索 x 联网搜索

华为云开发者联盟

AI 框架 FastGPT 华为开发者空间

YashanDB配置高并发环境下的数据处理技巧

数据库砖家

MyEMS:赋能能源管理数字化转型的核心引擎

开源能源管理系统

开源 能源管理系统

内网聊天软件,帮助企业快速构建专属聊天APP!

BeeWorks

即时通讯 IM 私有化部署

仓颉之结构体、类与接口的奇幻乐园

华为云开发者联盟

仓颉 华为开发者空间

基于开发者空间GaussDB数据库的分区表项目实践

华为云开发者联盟

Gauss DB I/O 调度 华为开发者空间

仓颉之泛型和扩展的神奇天地

华为云开发者联盟

CodeArts 仓颉 华为开发者空间

YashanDB面向业务的数据库性能优化策略

数据库砖家

Veracity,构建在分布式数据库上的分布式版本控制系统_架构_Abel Avram_InfoQ精选文章