views:

151

answers:

3

Where to store binaries needed for automatic builds on Team System? Are you storing them along with the code in the SCM or someplace else? Is having a big amount of binaries in SCM causing any performance issues with source controol?

There is a need to be able to revert to earlier version of some external library in order to fix bugs in released version, however the versions are not compatible. Branching would do the trick, but I think that storing binaries along with the code is anti-pattern.

Any suggetions are welcome.

+1  A: 

We've always stored external binary dependencies along with source code, images, build scripts and all other artifacts needed to build a solution together in the version control system(VCS). That's what a VCS i really good at, and it ensures that we have the proper version of all necessary artifacts available for any version of our build, even the branches.

I'm curious: Why would you consider this an anti-pattern?

Per-Frode Pedersen
A: 

Subversion for example has the svn:externals that could be used to import the contents of another directory with your libraries. The external could be pinned to a specific revision. For me that is a better way and you avoid nested working copies.

cringe
+1  A: 

I've always used svn:externals for this in the past, as described by cringe. But it's slow to update in a local working copy. I've kicked off an open source project with a couple of friends to try and solve this issue, which is still at a very early stage, but if this is a problem you're interested in you might want to keep an eye on it (or even help with it). It's called Refix and is hosted on CodePlex.

David M