Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
632 views
in Technique[技术] by (71.8m points)

mercurial - Git style backup of binary files

I'm in process of integrating GIT version control system into 3ds max to control .max file versioning.

I tested git with max files for several weeks and have found that it suites my needs, but, anyway, git is little bit overcomplicated for this kind of tasks. What I'm looking for is the program that works just like (well, almost) git, but:

  1. is naturally born windows program - git failed several times on my network shared folders and destroyed my binary max files. This is the main problem, and I don't know how to solve it.
  2. doesn't (doesn't even try to) process file content. I think that speeds up the workflow.
  3. has interface close to TortoiseGIT.

What this software has to have is:

  1. commit and log commands
  2. branching support
  3. be distributed and not server oriented like Perforce.

I tested Mercurial, but it is really slow on large binary files. If someone knows how to speed it up (by disabling content management, I suppose) and have TortoiseHg fully functional, any information would be greatly appreciated.

Thank you!

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Binary files have sort of an ambivalent relationship with VCS because:

  • they do not merge (so the all "branching support" is not that interesting)
  • they do not diff very well (meaning the storage of their history is not very compact)
  • they usually can be generated
  • or they can be fetched from other kind of repositories

Binary files are part of Git limits as they tend to slow down the all workflow, and do not scale in size (the repo quickly becomes too large to manage/backup efficiently).

So the question is: could you store those files is some other repo than a VCS?
A Maven repo perhaps (managed by a repo manager like Nexus, not exactly distributed, but made to reference precise version of any kind of set of files).


Jakub Nar?bski (actual Git contributor) rightly points to a Git fork project able to manage more efficiently big files.

[git-bigfiles alt text (ok, the project logo is awesome ;) )

The question remains: is a VCS the right tool for managing such large objects?
Because in my experience, the question of "cleaning up the history" will be asked one day or another, because of a ever increasing amount of disk space used.
And VCS are fundamentally not made for "clean-up" their history.
Git itself cannot do it without changing its SHA1 key, making any future publication to other public repo problematic.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...