我为一家会计公司管理的其中一个文件服务器目前遇到了一个大问题。
Quickbooks 倾向于反复创建相同内容的多个文件以防止数据丢失。当您只处理几个文件时,这是一件好事。但在会计公司,这却成了问题。
一些老客户在各自的文件夹中有 5-10 个文件,每个文件都有不同的截止日期。由于用户错误,其中一些文件没有正确标记其正确的截止日期。
这时我想到了 Subversion。使用修订系统将允许 1 个文件成为主文件并拥有其所有修订版本。有人曾尝试过对 Quickbooks 文件执行此操作吗?
我只使用 SVN 编写应用程序代码,使每个文件大小大大减小。SVN 如何处理 10-25MB 这样的大文件?我不太清楚 SVN 如何处理修订 - 它是否保留文件的副本并复制所需的磁盘空间?
答案1
我可以回答您的一个问题:我们经常使用 Subversion 来处理 20mb 的二进制文件,它处理得很好。显然,您无法对它们进行 diff 或 blame,因此您无法进行任何并发。我们在二进制文件上使用保留签出来解决这个问题。
这颠覆之书很好地解释了 Subversion 的工作原理和存储文件的方式。我记得唯一相关的部分是当你进行分支时,它会不是存储每棵树的完整副本,但我不确定这是否适用于二进制文件。
答案2
我认为 DVCS(如 git、mercurial 或 bzr)可能更适合您的应用程序,因为这意味着您不需要为文件设置单独的存储库……工作副本与存储库位于同一位置。诚然,在 svn 中设置存储库很容易,但这只是需要管理的另一件事……所有系统管理员都知道这一点较少的管理的事情是一件好事。
答案3
Subversion 可以处理足够大的文件以满足您的目的...我提交了数百 MB 的文件,并且成功了;但是当我提交 2GB 的文件时出现了一些问题。 (现在先不管为什么。)
一种可能对您很有效的方法是,根据您的设置,为 webdav 提供对存储库的访问权限。OS/X 使这些操作变得非常无缝;如果您运行的是 Windows 客户端,则必须查看详细信息,但应该有一些东西。Webdav 本质上会为您提供一个看起来像文件系统一部分的共享文件夹。您将 Quickbooks 文件保存到该共享并从中工作。所有写入最终都会作为对 svn 的提交,因此没有任何额外的提交步骤。是的,您会很快生成大量提交,但这应该不是问题。
至于 svn 如何存储其文件,这有点复杂,但它本质上存储增量,因此当您有数百次提交时,您不会有数百个文件副本。
答案4
多年来,我一直将 QB 文件保存在 svn 下 -- 主要是在 Windows 上使用 tortoise。它能工作,但 QB 在接触文件方面表现得不是特别好,因此您只需小心不要最终导致虚假冲突。
例如,仅仅打开文件就会触碰它,导致 svn 认为它已被修改。此外,即使与 .nd 文件无关,QB 也可以坚持触碰这些文件。
但它确实有效。而且 20MB 以上不是问题。