On Feb 28, 2012, at 11:08 , Helmut Zeisel wrote:

> Our software products use different components, where many base components 
> are used in different products. It is not necessary that all developpers 
> compile these componentens themselves, that is, these components are 
> distributed binary (as object files or libraries).
> To make the distribution of binaries easier, some developers started to 
> include also object files and libraries of the common base components in the 
> subversion repository.
> 
> I know that subversion was not invented for that purpose, but from our 
> experience it seems that it actually works.
> 
> My questions:
> 
> What kind of problems could occur if too many binaries are in the subversion 
> archive?

Subversion handles binary files well.  It's commonly used to store the
"golden master" files of software releases.  

It sounds like you're using Subversion for dependency management,
too.  This has some advantages:

- Safe archiving (what's committed stays committed)
  
- Simple checkout procedure

- No extra admin required

But it also has disadvantages:

- Runaway repository growth.  Object files and .jar files don't compress 
as well as text.  If you bust a hard limit for your repository disk space, 
your IT service provider might force you to pay a drastic penalty.

- Slower checkouts, updates, and merges due to working copy size

Also, you'll miss the features of language-specific dep-mgt tools, which
have a lot of sanity checks built in.  A few examples:

  Java:  Maven
  Python:  virtualenv + pip
  Ruby:  bundler + gem

As a fallback, if you don't have an off-the-shelf dependency manager,
try Subversion externals.

  http://svnbook.red-bean.com/en/1.7/svn.advanced.externals.html

> 
> How good does subversion make diffs of object code?

By default, 'svn diff' skips binary files.  You can customize it to use another
program to display diffs for, say, "*.o" file.

There's a quick summary of binary-file handling here:

  http://svnbook.red-bean.com/en/1.7/svn.forcvs.binary-and-trans.html

On the server side, Subversion stores files using a binary diff algorithm,
and has a "representation-sharing" feature for avoiding redundant data
storage.

> 
> What better options for sharing versions of object fils are available?

That depends on your programming language.

Regards,
Steve

Reply via email to