BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 Abel Avram 关注 7 他的粉丝 ,译者 杨晨 关注 0 他的粉丝 发布于 2011年7月28日. 估计阅读时间: 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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

已经1.0了 by law vincent

veracity-source-1.0.0.10517

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT