version control on large files

心不动则不痛 提交于 2019-12-03 05:41:43

Please be very aware that it is almost impossible to merge binary files! At least automatically. At least I've never heard of a program that supports three-way merging on a binary format. Let alone conflict resolving.

That's why most asset management tools don't have branching, since it makes little sense since you can't merge again. Locking and linear history is better. If you want to "branch", then make a copy of the file with history.

Perforce is the only version control system I've heard being used for huge files and whole projects. It's free for two seats, but pretty expensive for more users (around $900 per seat). I've heard it can handle repositories as large as a terabyte.

git might be another option. It behaves somewhat differently from SVN, but is made for bigger projects (e.g. the Linux kernel). I'm not sure if it's good for big binary files.

At my company, we use Documentum as a ECMS, managing lots (and I mean really lots) of binary files. Documentum (or other ECMS like Alfresco) are supposed to be the "right" solution to manage documents. Documentum supprots tagging and branching, and can expose files as WebDAV (so integration into your workflow can be more or lessa transparent).

That's the theory. In practice, we found Documentum slow, hard to configure and manage. And honestly, even if we have lots of documents, most of them are not larger than a few 100's Mo.

This answer more of what you should not do than what you should do ... sorry ...

The Mercurial large files extension could help. It adds the ability to tag files as "large". Stores those files in a central store separate from the rest of the repository. Uses hashes to determine which versions of the large files you need and only downloads the ones you need right now.

If you need to manage HUGE files, give a try to Plastic SCM (www.plasticscm.com). AFAIK Perforce is also an option but branching and merging are not that strong.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!