如果您担心处理大型 Visio 文件的内存问题,为什么不利用 git 的分布式特性并设置多个存储库呢?像这样。
Root Folder (Git Repo)
.gitignore (that ignores the Visio Folder)
Visio Folder (Also a Git Repo)
自由工作,毫无顾虑地提交您的 Visio 文件。然后,当您对更改感到满意时,只需将预期的文件移到目录下即可。提取并提交它。这可能看起来不优雅,但是如果您的 Visio 文件夹因内存问题而无法使用,您可以直接粉碎它,因为您需要的一切都在它下面的 git 存储库中。(防止大型二进制文件占用存储库空间的唯一真正方法是不提交它们。)
如果此解决方案过于粗糙,请将 Visio 文件夹设置为根文件夹的远程文件夹。让您的 Visio 文件夹包含两个单独的分支,一个包含包含您的巨型文件的提交,另一个不包含。只需从没有 Visio 文件的分支中获取。如果这仍然不能让您控制您需要设置遥控器、子文件夹等,直到您获得可以为您产生有意义的工作流程和历史记录的存储库结构。
添加本地远程
cd 'Root Folder'
git remote add visiofiles 'Visio Folder'
如果您喜欢冒险,您可以研究 git 的“干净”和“涂抹”过滤器(当您提交和签出时它们会在文件上调用——它们旨在让您使用与您的团队不同的缩进规则,但是您可能能够压缩和解压缩东西)。如果您要提取 Visio 文件以便更好地检查更改,您可能会利用 git 的 textconv 配置文本优势。Git 让您在文件上调用自定义差异,一种方法是将该文件转换为字符串并在其上运行差异。这确实需要您对 .gitconfig 和 .gitattributes 文件有点熟悉,并找到适合字符串转换的程序。
但是,您描述的问题是内存问题,因此您可用的挂钩和配置可能不是必需的。