2010-06-30 106 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中。