【问题标题】:Binary files/folders version control in 2020?2020 年的二进制文件/文件夹版本控制?
【发布时间】:2020-08-21 12:44:35
【问题描述】:

我想保留一个包含大量二进制文件的文件夹的“快照/版本”。该文件夹包含我通过rsync/rclone/scp/whatever 所做的所有备份。 由于源可能被破坏/黑客攻击,我想保留所有版本。

我们都知道 git/subversion 不适用于文本以外的文件,我想知道是否有更通用的工具用于此目的。

我将专门使用 linux。

【问题讨论】:

    标签: version-control backup versioning


    【解决方案1】:

    git-annex 绝对是您完成这项工作所需的工具。

    很棒的文档、很棒的代码、很棒的社区。​​p>

    快速入门指南:

    使用sudo apt-get install git-annex 安装它,然后它就可以像使用 git 一样管理您的数据了。

    git init
    git annex init "main-backup"
    git annex add  # if you don't specify any paths, it adds everything
    # it'll hash your files and store them inside the .git folder with their hash as their filenames
    git commit -m "Add my most important files"
    

    【讨论】:

    • 尽管我进行了所有搜索,但从未听说过它。添加所有文件git annex add 需要很长时间,它似乎正在将文件复制到某个地方?!
    • git-annex 也用符号链接替换所有文件。这会破坏使用 rclone 和 rsync 的工作流程。
    • git-annex 不会复制文件,除非你告诉它。默认情况下,它确实使用 SHA256 对文件进行哈希处理。散列需要大量的 I/O。符号链接是为了您的安全。我很肯定有办法让 rsync 跟随目的地的符号链接。您还可以在源上创建一个 git-annex 存储库,而不是在源和目标之间进行 rsync-ing,您只需 git annex sync。
    • 再次阅读您的问题让我觉得bup 可能很有用,因为它使用滚动校验和将大文件分割成块并在其中进行重复数据删除。顺便说一句,git-annex 还支持 bup 作为远程,因此您可以通过友好的 git-annex 界面享受重复数据删除。
    • 使用rclone -S 跟随符号链接,它无法同步。我得到`[..] 权限被拒绝`,因为.git/annex/objects/... 中的所有文件都是只读的。我会试试bup。
    猜你喜欢
    • 2016-05-06
    • 1970-01-01
    • 2011-06-28
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-26
    相关资源
    最近更新 更多