大文件版本控制工具 bfsync 0.2.0 發布

jopen 12年前發布 | 9K 次閱讀 Git

bfsync 是一個為大文件提供 git 風格的版本控制的程序,文件內容使用 bfsync 管理,使用 git 資料庫來完成版本控制,資料庫只存儲數據文件的哈希值。

該版本幾乎進行了整個項目重寫,再基于 git ,而是使用 SQLite 數據庫存儲內容;使用 FuSE 文件系統來查看和編輯資料庫內容;改進了版本歷史記錄;存儲更多的元數據,包括用戶、組和硬鏈接、設備等。

Bfsync能夠實現:

  • synchronize a collection of big files between many machines, where the collection is changed independently on different machines
  • offline commits, so you can change files and commit on your laptop and resynchronize as soon as you have network connectivity again
  • file-level deduplication, so storing a file twice under different names will not use more space than storing it once - also renames or removing a file and re-adding it will not retransfer the data, if the repository already has it
  • storing all attributes, bfsync stores everything a normal filesystem would store, like user/group settings, permissions, symlinks, hard links, devices, ... (this is useful for backups)
  • storing each file only once: many version control systems store files two times on the users machines, once internally and a second time as "checkout"; especially for huge files (mp3s, photos, videos) this is not convenient. bfsync stores each file only once, and provides a view on the data in the FuSE filesystem; it uses copy-on-write if a file is modified
  • old versions remain available: bfsync keeps all files and all versions available in each checkout; within the filesystem there is a .bfsync/commits/N directory for all commits, so you can look at all old versions from within the filesystem
  • rate-limiting: since big files take extremely long to transfer, bfsync allows to limit the bandwidth used for file transfer, so it can run in background without disturbing your normal work

大文件版本控制工具 bfsync 0.2.0 發布

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!