二进制文件的 Git 样式备份

标签 git mercurial 3dsmax

我正在将 GIT 版本控制系统集成到 3ds max 中以控制 .max 文件版本控制。

我用 max files 测试了 git 几个星期,发现它满足我的需求,但是,无论如何,git 对于这类任务有点过于复杂。我正在寻找的是像(好吧,几乎)git 一样工作的程序,但是:

  1. 是天生的 windows 程序 - git 在我的网络共享上失败了好几次 文件夹并销毁了我的二进制 max 文件。这是主要问题,我不知道如何解决。
  2. 不(甚至不尝试)处理文件内容。我认为这会加快工作流程。
  3. 具有接近 TortoiseGIT 的接口(interface)。

这个软件必须具备的是:

  1. 提交并记录命令
  2. 分支支持
  3. 是分布式的,而不是像 Perforce 那样面向服务器。

我测试了 Mercurial,但它在大型二进制文件上真的很慢。如果有人知道如何加快速度(我想是通过禁用内容管理)并使 TortoiseHg 功能齐全,将不胜感激任何信息。

谢谢!

最佳答案

二进制文件与 VCS 有某种矛盾的关系,因为:

  • 它们不 merge (所以所有的“分支支持”都没有那么有趣)
  • 它们的区别不是很好(意味着它们的历史存储不是很紧凑)
  • 它们通常可以生成
  • 或者它们可以从其他类型的存储库中获取

二进制文件是 Git limits 的一部分因为它们往往会减慢所有工作流程,并执行 not scale in size (存储库很快变得太大而无法有效管理/备份)。

所以问题是:您能否将这些文件存储在 VCS 以外的其他存储库中?
Maven可能是 repo(由像 Nexus 这样的 repo 管理器管理,不是完全分布式的,而是用来引用任何类型文件集的精确版本)。


Jakub Narębski (实际 Git contributor )正确地指向一个能够有效地管理大文件的 Git 分支项目。

[git-大文件 alt text (好的,项目 Logo 很棒;))

问题仍然存在:VCS 是管理此类大型对象的正确工具吗?
因为根据我的经验,“清理历史记录”的问题总有一天会被问到,因为使用的磁盘空间量不断增加。
从根本上说,VCS 不是用于“清理”它们的历史的。
Git 本身不能在不更改其 SHA1 key 的情况下执行此操作,从而使将来发布到其他公共(public)存储库的任何内容都存在问题。

关于二进制文件的 Git 样式备份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2266737/

相关文章:

git - 使用 git flow,我如何恢复到以前的版本?

git - 如何 git checkout 特定目录并删除该目录的路径?

git - 如何从工作树清理到工作目录清理

version-control - 你能阻止默认推送,但允许拉吗?

visual-studio - Visual Studio 2017 的 3DS Max 插件向导

git - 仅从远程存储库中删除文件

linux - Linux 上的 ns-3 : error when cloning ns-3 branch

ubuntu - 幻影 Mercurial ,如何去除?

3dsmax - 如何通过 Maxscript 以编程方式更改 3dsmax 透 window 口的 F​​OV?