Things depend on the workflow and the VCS used.
Using a component-based workflow with SVN, you check for included and component libs. Thanks to this, libs and include create an interface for other components. They only import libraries and include the use of svn: externals, without importing the source code of the component at all. This provides clean interfaces and a strict separation between the various components: A component is a black box that can only be used as specified in the interface. The internal structure is invisible to others. Using binary files reduces compilation time and can reduce the number of tools needed to compile, since the special tools needed to create the component should not be present when using it.
However, using distributed things VCS will not work that way. DVCS depend on the cloning of the entire repository. When checking binary files, the storage size will grow rapidly beyond the point where it takes too much time. Although having 100 GB SVN storages is not a problem, since only one revision is considered at the box office, which is several orders of magnitude smaller, having a Git / Mercurial / Bazaar repository of this size will make it completely unusable, as cloning will require age.
So, whether the verification in binary files is good or not depends on your workflow and also depends on the tools used.
source share