2010-06-30 104 views
1

是否有可能创建一个将其对象保存到某个数据库(SQLite,MongoDB等)而不是文件系统的Git存储库?修改只读文件系统的Git命令?

它看起来像我可能存储在MongoDB中使用类似GridFS的完整存储库。

想知道是否有办法让它如此git push origin master从数据库读取并像文件系统一样行事。

是否可以这样远程?或者必须 git只能是文件系统?

回答

2

你不得不重写大量的代码。 Git的标准文件系统作为其后备存储(专门构建在Linux的VFS子系统上的速度非常快)。

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

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

+0

想要查看是否可以在[Heroku](http://heroku.com/pricing)应用程序中创建github存储库,该应用程序要求所有内容都是只读的,并且只能通过git上传应用程序。还有其他选择:) – 2010-06-30 08:43:47

0

Git本身就是一个数据库。

您不需要备份数据库中的数据。如果你创建一个裸仓库(git init --bare或者git clone --bare),你将不会在系统上有任何文件“checkout”,并且所有的东西都在git“database”中。顺便说一下,如果你真的想使用只读文件系统(不同的目标),解决方案不是数据库,而是使用aufs文件系统覆盖(或联合安装),在另一个文件系统“可写”文件系统。如果您想使用tmpfs,可能只是在RAM中。