目前,我们的文档全部托管在 Windows 7 机箱中。用户可以使用 Windows 共享访问文件,并且文档可离线使用(Windows 7 功能)。Windows 7 备份和恢复实用程序每天都会备份文档。用户可以使用 Windows 资源管理器的“以前的版本”功能访问文件的以前版本(从备份中)。
此设置目前运行良好,但以下情况除外:
- 我们希望能够访问每小时的版本,而不是每日的版本。
- 以前的版本机制与备份机制紧密相关。Windows 7 每周执行一次完整备份,每天执行一次增量备份。文件的以前版本实际上就是备份中可用的内容。如果您有 20GB 的文档,并且想要保留至少三年的历史记录,那么即使文档中几乎没有变化,您至少也会使用 3 年 * 52 周 * 20GB 或大约 3TB 的空间。这是非常低效的空间利用。
- 查找文件的先前版本非常慢(几十分钟)。这可能与之前的问题有关 - Windows 必须遍历其所有备份。
我正在考虑使用 SVN + autocommit/autoupdate tortoisesvn。它将具有以下优点:
- 备份很简单,还会备份每个文档的整个历史记录。(只需备份存储库)。
- 创建先前版本可能很频繁。我认为 svn commit / update 可以每两分钟左右进行一次。
- 用户可以通过网络同步。
然而,我发现以下问题:
- 冲突比原始设置更多,因为现在多个用户都可以编辑同一个文件,即使他们都在线,即可以连接到 SVN 存储库。用户当然可以在编辑之前先锁定文件,但这意味着他们必须进行调整。
- 文件更改传播延迟。在 Windows 7 文件共享中,一个在线用户所做的更改将立即提供给其他在线用户。使用 SVN 设置,只有当用户执行 svn add/commit/update 序列时,更改才会传播。延迟可能要几分钟。此工作流程将不再有效:“您好,我刚刚编辑了文档 X,您能快速查看一下吗?”
我想征求社区的意见,寻求替代设置,或对上述设置进行改进,以解决问题。
答案1
如果您不介意支付超过 2GB 的存储空间,Dropbox 是一种非常方便且维护成本低/易于设置的解决方案。当发生冲突时,它会自动命名冲突*(computer-name's conflicted copy yyyy-mm-dd).*
。而且他们的备份可能比您的本地解决方案更冗余(并且不计入存储配额)。
Dropbox 还拥有一个 API(我还没有用过,但它可能与 SVN 的提交钩子相当或更胜一筹)和一个非常用户友好的在线文件浏览器。更不用说它内置了协作和文件共享功能,比 Windows 的更方便/更安全。
如果您正在进行开发,我建议使用 SVN 或类似的 SCM,因为它有很多可以很好地集成的开发工具(项目经理、问题跟踪器、代码审查平台等),但对于通用备份和版本控制,Dropbox 可能更方便——尤其是对于非开发人员而言。
答案2
我知道这是一个老问题但我最近一直在思考同样的问题。
我找不到任何人同时使用 svn 和 Windows 7+ 脱机文件夹,我无法想象这是一个好主意!如果脱机文件夹丢失,您可能会丢失最新的更改。
不幸的是,这意味着您必须将文件放在本地驱动器上(在这种情况下,当前更改不会被备份)或放在非离线网络文件夹中 - 这使得在出现网络问题时无法访问!
最近,我将其中一个网络驱动器移至新服务器,但不幸的是,移位人员忘记了离线文件夹,因此他们移动了我的一些旧版本文件,因为离线文件夹同步失败 - 没有任何警告!幸运的是,我发现了这个问题,因为 svn 告诉我我的文件不同步(已有几个月了),所以我可以清理一下。