After reading many introductions, starting guides, and documentation on SVN, I still cannot figure out where is my versioning data stored. I mean physically. I have over EDIT [1/2 GB] of code checked in, and the repo is just a few MB large. This is still Voodoo for me. And, as a coder, I don’t really believe in Magic.
EDIT :
A contributor stated that not all the code was stored in the repo, is that true ? I mean, if I delete my local working copy I still can get back my source code for the repository…
If so, I still can’t understand how such a compression can occur on my code…
EDIT 2 :
When I import the code into repository I have the message “50MB uploaded” and the actual repo is much smaller. Compression Algos must be involved.
BTW, It’s funny to read some answers and see how many people DO Indeed believe in Magic, and use SVN without REALLY Knowing what goes on behind the scenes…
Putting this as an answer, per Mika’s request:
I’m surprised by how many people have this answer wrong. The .svn folder is NOT where the server stores its files (because that is local to the machine – nobody else would be able to check out that information), and, while SVN only stores the diffs (assuming FSFS), it has to store the originals SOMEWHERE.
Of course, as @csharptest.net said: “My guess, 70% is perf data, the other 29.99% is in ‘obj’ and ‘bin’ directories. leaving you with the 10mb of actual code checked in.” So you’re not actually checking in all that information anyway. Most of it never enters the repository. In addition, SVN uses a lot of compression algorithms and various techniques and does not necessarily store your data byte for byte within the repository. That may be why you are seeing a difference in size.
If you’re interested in reading more of how SVN works, read about it at this Stackoverflow answer.
Hope that helps!