From Pro Git chapter "Packfiles":
The initial format in which Git saves objects on disk is called a
loose object format. However, occasionally Git packs up several of
these objects into a single binary file called a packfile in order to
save space and be more efficient. Git does this if you have too many
loose objects around, if you run the git gc command manually, or if
you push to a remote server.
As you can see Git doesn't always store each version of a file separately and uses differences as well. In addition, Git compress every file with zlib that's quite effective at least for plain text source code files.
Still it's not easy to tell for sure whether Git uses more or less space than SVN. One reason for that is that SVN stores locally only the last revision while with git you have full copy of the repository on your machine. So you can't compare space used by one revision in SVN with space used by full repository in Git.
And comparing space used by SVN repository on server with space Git repository depends a lot at least on specific revisions history and types of files you store in them.