修改只读文件系统的Git命令?

时间:2010-06-30 07:38:46

标签: git readonly

是否可以创建一个Git存储库,将其对象保存到某个数据库(SQLite,MongoDB等)而不是文件系统?

看起来我可以使用像GridFS这样的东西在MongoDB中存储一个完整的存储库。

想知道是否有办法使git push origin master从数据库读取并且就像文件系统一样。

有可能远远不是这样吗?或必须 git只是文件系统?

2 个答案:

答案 0 :(得分:2)

你必须重写大量的代码。 Git的构建是为了将标准文件系统作为其后备存储(并且专门在Linux的VFS子系统上构建得非常快)。

实现这样的事情的唯一真正实用的方法是,如果你编写了一个支持git所需的所有操作的FUSE文件系统,并使用你选择的数据库作为后端。

我不确定你为什么要这样做或者你想要完成什么。从典型数据库的功能中获取Git并没有什么可以获得的,并且会失去很多性能。

答案 1 :(得分:0)

Git本身就是一个数据库。

您无需在数据库中备份数据。如果您创建一个裸存储库(git init --bare或git clone --bare),您将不会在系统上有任何文件“checkout”,并且所有内容都将位于git“数据库”中。

顺便说一句,如果你真的想使用只读文件系统(不同的目标),解决方案不是数据库,而是使用aufs文件系统覆盖(或联合安装),在另一个中进行每次修改“可写“文件系统。如果你想要一个tmpfs,可以只在RAM中。