SVN or GIT is your best bet.
See http://git.wiki.kernel.org/index.php/GitSvnComparison why you might choose GIT over SVN. (we use both systems at work).
Access to SVN can be set up in multiple ways, for instance through SSH:
svn+ssh://[email protected]/home/user/your_repository/
So this would require a setup of your SVN repository and SSHd on your system, which should be accessible by your friend. (so you'll also want to create a user account on your system for him - or a general development account).
You can also make use of services such as GitHub or beanstalk to host your project for you (but might come with a monthly cost).
To setup your system (linux):
$ mkdir ~/your_repository/
$ svnadmin create ~/your_repository/
You might want to edit the svnserve.conf in the conf directory to set access permissions.
[general]
anon-access = read
auth-access = write
realm = Your project name
password-db = passwd
Now you can connect with the line posted above. Make sure that with this configuration, anyone can read (export / checkout) your project but in order to write to it (commit changes) you'll have to authenticate. (which is done through SSH first, line above, and then a tunnel is created for SVN)