Synchronizing large files without conversion as part of a Subversion checkout

We've been working with a Subversion repository for a research lab for some time now and have encountered a common problem on numerous occasions:

We want to update all the code and small bits of persistent data, but we also have large binary blobs that live inside ignored directories in user checks, and we would like to make it easier for users to bypass these files and keep them in sync so that multiple users can work with large blocks without having to manually copy them between machines or check them out in the repository (this one already has more of these things than ideal).

I thought about using various backup services like JungleDisk to at least make it easier for users to back up this data, but they are not meant to be in sync. Also, simply disabling JungleDisk would be less ideal because sometimes the data files are quite large and waiting for them to be cached can degrade performance significantly.

Other alternatives might involve providing copies of rsync and just use some shell scripts in the repository that users can run to manually sync files (apart from svn checkouts / commits), but it would be nice to have this work with minimal effort on Mac, Windows and Linux for users who may not be the most tech-savvy. So it would be ideal if it was easy to customize (for new non-flipped files), easy to install (fewer steps are better), and doesn't require a lot of user intervention to get the system to work (automatically or just double-convert) the script hit was would be nice).

Any thoughts or suggestions?

+2


source to share


1 answer


I would make an rsync script to do this and then wrap the subversion binary in it. You will probably need another script to install it at low complexity for end users (although if you only have a few, just do it manually).

Also, if it were possible, I would try to move these binary blobs somewhere other than inside your subversion tree ... which seems to be causing problems.



Maintaining windows is just a pain in all of these situations. I have personally used python for this task because it is quite portable for all of these systems.

+4


source







All Articles