2010-02-18 23 views
5

我想創建一個個人數字檔案。哪個開放源代碼倉庫或版本控制系統存儲文件的原始mtime,ctime和atime?

我希望能夠檢查數字文件(幾年前,一些最近,一些尚未創建)到該檔案中,並保留它們以及它們的元數據,例如ctime,atime和mtime。

我希望能夠從存檔中檢查這些文件,修改它們的內容並將更改提交回存檔,同時保持早期提交及其元數據不變。

我想歸檔爲很可靠可以遠程備份。

我希望能夠在運行Linux,Mac OS X 10.5+或Win XP +的PC上檢查文件的進出檔案。

我希望能夠檢查文件進出文件的RAM容量低於文件大小的電腦。例如。我希望能夠使用具有2GB RAM的PC檢入/出13GB文件。

我以爲Subversion可以做到這一切,但顯然it can't。 (至少,幾年前,就我所知,它仍然不能;糾正我,如果我錯了)。

是否有免費的VCS或類似的所有這些東西?

感謝您的幫助。

+0

似乎在svn的情況下,這個問題已經考慮了7年或更長的時間,並且仍在考慮之中,但尚未實施。好消息是RFC似乎很活躍。請參閱http://subversion.tigris.org/issues/show_bug.cgi?id=1256和http://permalink.gmane.org/gmane.comp.version-control.subversion.devel/117879。那麼,如何選擇呢? – sampablokuper 2010-02-19 00:02:49

回答

0

我懷疑是否有一個vcs完全符合你的要求。我不會選擇這樣的功能作爲我選擇vcs的主要標準。但是,使用svn和git可以將屬性與提交一起存儲,並啓用安全性以禁止編輯屬性。

1

你想用rsync和快照實現更好的效果。你可以在這裏瞭解到: http://rsnapshot.org/

無論如何,這似乎是一個更適合serverfault或超級用戶的問題。

0

Git真的不能這麼做,Mercurial也不能,而且據我所知,任何其他現代SCM系統都是如此。原因是1)它們是爲源代碼設計的,2)在分支機構,合併和其他SCM活動面前合理地保存和更新這些文件元數據時間戳幾乎是不可能的。另外,他們都可以將文件上的mtime設置爲提交時間,這與絕大多數用例的mtime一樣有用。使用mtimes也會在SCM系統中引發大量不必要的流失(你能想象它們是否也存儲了atime嗎?)像CVS這樣的基於文件的SCM甚至Visual SourceSafe都可以存儲mtimes,但是它們有很多其他缺點,他們不值得考慮。

針對所有這些SCM建議的常見解決方案是提交/更新掛鉤腳本,它將存儲您的文件元數據(時間戳,權限等)作爲存儲庫中的單獨文件,甚至作爲自定義SVN屬性。您的腳本在簽入時更新該文件,並在結帳/更新時恢復元數據。無論如何,合併都會變得醜陋。有很多這樣的腳本作爲互聯網上的樣本。

如果你想要一個可移植的存檔,最簡單的事情可能只是將tar + xdelta + SHA1SUM/gpg簽名「鏈接」在一起。

相關問題