写点什么

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:562128
用户头像

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

关注

评论

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

GreenPlum中的资源队列

数据社

greenplum 5月日更

网络攻防学习笔记 Day10

穿过生命散发芬芳

5月日更 网络攻防

语义理解过程中的崩溃

Qien Z.

nlp 语义 5月日更

五一假期回乡,跟大家聊聊感触

架构精进之路

心情 杂记 5月日更

凭借一份“面试真经pdf”,我四面字节跳动,拿下1-2级offer

Java 程序员 架构 面试

架构实战营-详细架构设计文档

Simon

架构实战营

技术干货|7个 React 性能提升技巧

拍乐云Pano

React

如何判断企业赚不赚钱?

石云升

创业 财务分析 5月日更

SSL / TLS协议解析!什么是SNI? SNI 识别?

明儿

那些激情燃烧的NFT们

zhoo299

区块链 加密货币 艺术 5月日更 NFT

Linux下内存不足问题的定位与处理

明儿

Linux 内存 性能调优

HarmonyOS开发者创新大赛预选赛结束,23支队伍脱颖而出闯入决赛

Geek_283163

鸿蒙

阿里云入选 2021 Gartner APM 魔力象限,国内唯一入选云厂商

阿里巴巴云原生

阿里云 容器 微服务 运维 云原生

技术实践丨如何解决异步接口请求快慢不均导致的数据错误问题?

华为云开发者联盟

JavaScript typescript 大前端 浏览器 angular

百度大脑UNIT拍了拍你,提醒你报名智能对话训练营

百度大脑

物联网 智能对话

数据工作者必备工作技能:数据治理

博文视点Broadview

你到底想做什么

ES_her0

5月日更

聊聊 Zabbix 和 Prometheus(一)

耳东@Erdong

Prometheus zabbix 5月日更

【LeetCode】解码异或后的排列Java题解

Albert

算法 LeetCode 5月日更

机器学习 Machine Learning- 吴恩达Andrew Ng 第5~15课总结 John 易筋 ARTS 打卡 Week 47

John(易筋)

ARTS 打卡计划

Yii2反序列化RCE 新POP链

Thrash

如何更改 Notion 中的字体?

彭宏豪95

效率 Notion 工具 5月日更

耗时1年的前端技术框架切换之旅

华为云开发者联盟

大前端 软件工程 React 框架

Java程序员如何在“黄金五年”实现最大价值?

学Java关注我

Java 编程 架构 互联网 计算机

这个英语学习APP更适合小白

小天同学

学习 英语 5月日更 APP推荐

Golang Chaos Engineering

escray

学习 极客时间 Go 语言 5月日更

自动发布.NET Core Web应用

吴脑的键客

DevOps 运维自动化 jenkins dotnet

边缘计算与云计算的故事

攻城先森

云计算 边缘计算 5月日更

常见流媒体服务器方案对比分析

liuzhen007

音视频 5月日更

API网关

lenka

5月日更

挖矿从入门到放弃:Chia

程序员架构进阶

数字货币 28天写作 Chia奇亚挖矿 5月日更

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