有沒有類似git的檔案系統?

有沒有類似git的檔案系統?

Git 根據任何檔案的計算雜湊值在其儲存庫中唯一儲存內容。如果我的目錄中有兩個相同的檔案副本,那麼 git 實際上只會將其儲存一次。

我想知道是否在作業系統層級以某種檔案系統的形式實現了相同的概念?

如果檔案系統預設以這種方式運行,它將很好地幫助DLL地獄問題。本質上,它會代表您自動進行符號連結。任何應用程式都可以打包(如 jar )在一個目錄中,並包含其所有依賴項,並且無需額外的儲存成本。

Ruby 愛好者透過將庫發佈為 ruby​​gems 來共享庫。儘管如此,這種共享 gem 的努力還是導致了部署噩夢,從而導致供應商一切將所有依賴項複製到本機資料夾以避免此類噩夢的概念。

答案1

您正在尋找的稱為“重複資料刪除”。雖然它通常由專業儲存產品供應商實施,ZFS 檔案系統也實現它。大多數 Unix 衍生作業系統可以利用 ZFS,因此我推薦它作為第一個查看的地方。

答案2

Network Appliance, Inc. 多年來一直擁有這樣的儲存能力,事實上,他們向 Sun Microsystems 提交了針對其 ZFS 檔案系統的投訴,並且執行了 Aaron Miller 在他接受的答案中提到的操作。無論如何,這些投訴在大約 3 年後與 Oracle 達成了和解。

自 2000 年以來,我一直將其用作企業解決方案,並且效果良好。一旦文件發生更改,第一次「複製」後的儲存成本就會產生。否則,隨著許多「副本」的出現,命名空間只會略有增加。

我不認為這回答了有關“作業系統級別”的問題,而是回答了“檔案系統級別”的問題。

答案3

新的蘋果檔案系統(APFS,之所以如此命名,是因為已經有一個 AFS,它是別的東西)實現了這種「自動硬連結」/「重複資料刪除」的魔力。 macOS 10.13(在大多數 Mac 上)原生支援它,iOS 11 也是如此。

話雖如此,我覺得這還不足以使其成為“類似 git”,因為如果它是“類似 git”,那麼它還會在給定時間點對我的目錄結構狀態進行加密校驗和,以便我可以確定沒有人侵入了我的電腦或修改了我的系統目錄。事實上,我使用git repos 來追蹤Mac 上的某些關鍵系統目錄,例如Apache 設定檔、LaunchDaemons、LaunchAgents 以及其他一些檔案- 這樣,當我安裝軟體或運行伺服器一段時間時,我可以查看是否有任何內容搞砸了。

APFS 還提供了很好的支持,可以在一段時間沒有使用的情況下將檔案系統中的內容卸載到雲端中,但它們看起來仍然在那裡,並且會按需從雲端填充回來。

你總是可以建立一個 Hackintosh 並使用它。 BSD 很有趣。

相關內容