views:

364

answers:

5

I have a large file in my repository that is not text-mergeable and that I do not need multiple-version control for (PPT for example). I would like to keep it on the repository for backup purposes and to share with multiple people, but I do not want the repository size to grow huge because it's keeping a duplicate copy of the file every time it changes. Is there a way to specify this behavior for a file in a Subversion repository?

Thanks!

+5  A: 

This is not possible in Subversion. However: subversion keeps the changes to this file as binary diffs in the repository, so depending on the type of changes you make it won't consume a lot of extra space.

Simon Groenewolt
+1 In other words, only the changes to a file are added when it's versioned, not a full copy of the file in its new state.
Trevor Bramble
+1  A: 

You can't - and rightly so.

If a file doesn't change then only one version is stored. If a file does change then surely the point of using version control of any form is so that you can retrieve and earlier version. It may seem now that you would never want to do this, but the chances are that at some point in the future you will want to retrieve it.

If space is a problem get a bigger disk or upgrade your plan. It will be worth it in the long run.

Richard Harrison
I don't totally agree. I have a different, but somewhat comparable arrangement at home where I have iMovie files backed up by Time Machine. Any time I do an edit to an iMovie file the whole thing gets duplicated - and each file is about 5-10 GB! My backup disks fill up pretty quickly
Phil Nash
That's not really the same situation because when using version control you commit your changes when they are finished. Versioning large (media) files is almost a separate discipline and I'm not sure that I'd use subversion for it.
Richard Harrison
A: 

An alternative may be to store a symlink, then host the file on a network share.

Richard Levasseur
+2  A: 

You can't. Subversion is designed to keep the different versions of files. It's a version control system, after all.

Maybe just don't put it in subversion, but back it up or share it using rsync instead.

+1  A: 

You're probably using wrong tool for the job.

Peter Štibraný