我在Scott Chacon的Pro Git中找到了一个有趣的句子:
Git作为内容可寻址文件系统是一个非常强大的工具,您可以轻松使用它而不仅仅是VCS。
它还支持使用git作为数据库来替换许多应用程序中的SQL和no-SQL数据存储。
但我找不到任何真实世界的“Git as application database。”
有没有?
答案 0 :(得分:0)
我认为如果您的应用程序的数据可以在文件中管理,您可以使用git实现数据访问层或其一部分。您可以从版本控制中受益,而不仅仅是使用文件。
我甚至认为可以使用索引(暂存区域)模拟事务概念。
如果您考虑离线操作的应用程序并在再次联机时同步数据,那么Git也可能是一种合理的数据访问实施选择。这正是git的用途。我想在应用程序的数据访问层中使用git的想法相对较新,因此使用它的应用程序较少。 Java开发人员可能希望使用jgit api。
希望以分层结构管理其应用程序数据的Java开发人员可能希望使用modeshape和git connector。
也许modeshape是一个使用git来获取数据的真实例子。
答案 1 :(得分:0)
除了我的第一个答案......
答案来自git Linus Torvalds的发明者。 2014年,他在google+上发表了一篇关于使用git作为应用程序数据管理的文章。
所以我和+ Dirk Hohndel(他维持地下,我很久以来就放弃了这个角色)几个月来一直在讨论更好的保存格式。但二进制格式是邪恶的,通常是不可扩展的,此外,您需要复制和网络透明性,以及组合来自许多不同来源的潜水的能力。二进制blob对所有这些事情都很可怕。
所以我想使用+ Git对象数据库格式,因为如果我自己说的话,它实际上设计得很好。它不仅有效的重复数据删除和压缩,它还具有以下优势:它仍然可以很好地处理基于行的文本表示,同时允许将多个不同事件非常自然地表示为单独的文件,而git本身将它们捆绑在一起。 / p>
Git用于应用程序subsurface(由Linus Torvalds等人开发)。看看github上的source code你会看到它(git-access.c,load-git.c,save-git.c等)。
答案 2 :(得分:0)
Gerrit Code Review从一个关系数据库开始,用于存储除Git数据本身之外的所有内容,但是工作已经持续了很长时间,以便将所有内容转移到gits本身的配置文件中。我找不到一份描述一切如何运作的好文件以及路线图,但你可以从mailing list archives中挖掘出好的部分。