Question

I'm using a subversion repository which was given to me for free by a generous website. This means that I only have 200MB to work with for the repository. I'm not complaining, though, because I do consider this quite generous, and more than adequate for my source code needs.

However I have been occasionally using subversion for more storage-heavy file types, simply because of how powerful the system is, when I want to go "back in time" to work things out. I am a rather disorganized person, and having something like a dedicated version control system to help me sort things is really really helpful.

What I'm wondering, then, is whether my repository on the cloud will be "holding on" to a large file that I might have added to version control by mistake. Suppose I add several large files (let's say a multitude of 2MB jpeg's) to a subversion repository. I could in addition slightly edit them a bit on a subsequent commit, and also provide some unnecessarily verbose commit message comments for the log. Then I realize I don't want any of these jpegs anymore, and delete them.

Since I should be able to checkout the repository at any previous commit number, including of course the one at which I originally added the files, does that mean that even if I delete them from the repo later, the actual repo will continue to hold on to them forever if it is to ensure the ability to checkout?

If this is the case, I imagine there is a provision for deleting this data? If my repo becomes bloated with this type of "disposable" data (for instance I run out of my 200MB quota and still want to use my repo a little bit more for my programming purposes) there must exist some way for me to trim out the fat?

Apologies for not researching the topic much in advance. It's late.

Was it helpful?

Solution

The repo will definitely hold on to the data. The correct technical term is obliterate. Here is a link to why this feature doesn't exist on Subversion.

It won't come in the next versions 1.7 / 1.8 either. The Roadmap for Subversion is here.

Since you are using hosted Subversion, check with the host if they allow svndumpfilter command to be remotely executed on the server.

OTHER TIPS

Yes it 'deleted' files would still be in the SVN repo.

does that mean that even if I delete them from the repo later, the actual repo will continue to hold on to them forever if it is to ensure the ability to checkout?

Yes

If this is the case, I imagine there is a provision for deleting this data?

No there is not. However you can dump the repository to a file, cut off the things you don't want, renumerotate the revisions and load it back into a fresh repository. But take care... There is some filtering tooling available to help in performing this task. The command is called svndumpfilter.

The source control system puts a lot of effort into making sure you can go back to any point in time and that all data is available to you, as it used to be, at that particular revision number.

The whole point of version control is to make sure nothing ever gets deleted or overwritten permanently. So, 'deleting' a file, only removes it from your current view, not for the previous view; for the previous view, it will still be there.

There are methods of dumping en manually removing unwanted items, but they tend to be far from user friendly.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top