We need to store binary files (mostly MS Word documents, ranging from a couple of KB to a couple of MB in size) in a version control repository with over 100 "projects". Currently we use Visual Source Safe but there are some problems, the database is crashing sometimes and the access is slow.
We are considering moving to Git or Subversion and we were wondering which one would be a better option for handling binary files.
Subversion, definitely. Today (2009), TortoiseSVN provides Explorer-integrated navigation of Subversion repositories, and most particularly it supports diffing of arbitrary Word documents (it defers the diff to Word itself, but the feature works really well).
There's no reason why a TortoiseGit can't have this same feature, but such a thing doesn't quite exist in a stable form today. Fortunately, it's easy to migrate a Subversion repository to Git anytime in the future.
Update: As of 2011, TortoiseGit apparently has the same document management features as TortoiseSVN. However, Subversion supports advisory locking documents so that other users are notified if they try to edit the document at the same time as someone else. To the best of my knowledge, TortoiseGit cannot support this feature because of Git's distributed nature.
We use git for everything. Literally. Even our administrative office's entire file share is kept in git (the sysadmin commits it each day).
That share is almost entirely binary files -- word documents, quickbooks, etc...
We have a 100% accurate history of everything. And with an occasional git gc
it keeps the repo size manageable.
Also: git is really fast. When we switched from SVN, git
was ~ 10x faster than subversion
in our usage patterns (large projects with 20,000+ files).
TortoiseGit supports full git workflow for Office documents delegating diff to Office itself.
It works also delegating to OpenOffice for OpenDocument formats.