我喜欢的关于
fossil的是,它使用普通的旧sqlite来存储更改集,文件等.我可以使用它的命令行工具来查询存储库,但是如果我想要的东西不支持,我可以回退写一个SQL查询.
Mercurial和git更成熟,他们有更多的图书馆,更有动力,但他们使用自己的存储库格式.我不知道是否有可能有sqlite作为他们的存储库后端. (我知道有工具直接查询汞或git回购,但是sql似乎更容易)
解决方法
使用git,存储库格式是一切工作方式的基本部分.你必须做很多工作才能改变.
我没有阅读任何汞的来源,但我认为情况没有太大的不同.
正如我在评论中建议的,我不太确定你为什么要这样做.对于git仍然能够拥有所有优势,您必须将git对象存储在您的sqlite数据库中.您仍然需要所有的低级别git工具来访问和操纵它们 – 您不会只是通过SHA1s查找blob和树,并且自己完成所有其他工作. (即使由于某种原因,您也可以通过查看git对象目录来轻松地执行此操作.)
我的建议是,如果您发现您希望在git中执行的操作不受支持,那么您可以熟悉一些管道命令,并了解如何将其编写为脚本. Git真的确实暴露了你想要的最低级别的操作.
附:如果你想找到一个特定的不支持的操作,你想做的,找到你需要执行的管道,或者执行必要的脚本时遇到麻烦,在这里发布一个问题!没有理由因为无法使用sql而被卡住.