views:

39

answers:

1

Hello,

I'd like to store artifacts (~2GB per build) from my CI server (currently evaluating Hudson) in a space-efficient manner and have an easy way to access them. Artifacts are mostly a huge set of dlls and other binaries which in majority don't change between builds.

I thought of just using a standard VCS with dedicated repository for that: subversion or maybe mercurial+bfiles (I don't know it very well) for that. Then changing between versions would be simply svn up -rXX... but I'd like to be able to remove old artifacts to save space.

Am I going crazy trying to use VCSes to do that? Are there tools that are better suited to this usage?

Edit: Important features that VCSes already have: Windows UI (mostly for testers), labeling builds (so that it is easy to find out which build corresponds to which commit), remote access, and that you can switch between builds without redownloading all set of artifacts.

+1  A: 

You could use something like rsnapshot or rdiff-backup to do a differential backup after each build.

The size of the "backup" will be (total binary size) + (diffs). If your "backups" get too big, you can prune the old ones.

Also, both of those utilities store the backups in the filesystem, so you can access the files directly (to link with, copy, run, whatever).

Seth
Yes, I totally forgot of backup software. `rdiff-backup` would be a quite good shot here, if it had Windows UI.
liori