Since people have answers your question specifically - an alternative solution: a distributed version control system.
Git is probably the most popular, but I would recommend trying darcs - as it is compiled into a ~portable single binary file, unlike git which is a mess of shell-scripts, perl scripts/libraries and C (or C++
?) binaries.
The inherent benefit to a "DVCS" is you can commit (and do pretty much everything else) without connecting to a central server - when you are at school, you can commit, make/merge branches and so on. Then when you are at home you "push" to your main repository.
This means there's no need to open up ports through your router, and you don't have to depend on your home computer/internet-connection always being up.
Another alternate solution would be to use a 3rd-party SVN server (for example Google Code, or one of the many hundreds others - some allow private repositories, others charge for these), and again you don't have to worry about port-forwarding and so on.
The question is, how can I connect to my repository remotely ? What ports do I need to open on my router for example?
You can serve SVN via a web-server like Apache (guide) - then you would only have to forward port 80, and it is generally allowed on all networks.