views:

107

answers:

6

I want to set subversion on my local machine, thats on my laptop. i am working on a project with a friend of mine, but we live in different countries. so we need to set up subversion on of our laptops so that the other person can access it. how do i do that? and which is the best free source control software in the market.

any help appreciated

+2  A: 

Unless either of your laptops is permanently connected to the internet and has a public IP address, it's unreasonably complex to achieve. What I recommend is to either set up a repository on an open-source project hosting site (say, Google Code), or, if you're not into open-sourcing your work, go for something like Assembla.

Anton Gogolev
A: 

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)

Tom
A: 

Subversion offers password protection and user management, set in authz, passwd and svnserve.conf in the conf directory of your repository.

I'm not sure if serving it locally from your own machine is going to be a very vast and convenient experience for the your friend who'll be accessing that machine.

Alternatively you could look at a third party host. I'm hearing good things about Beanstalk and they have a free plan as well. Google Code also uses Subversion and is free, but has the requirement that your code should be open source/free - so private projects are out of the question there.

TortoisSVN is a good SVN client for Windows, Versions is a nice client for Mac OS X. There is also WebSVN, but that's more of a browser, not a (GUI) client.

mensch
+5  A: 

You might want to use something like Unfuddle which is basically a site that host the server for you. Also Unfuddle is free so no reason not to try it , all you would need to do is install TortoiseSVN to check your code in and out.

Why I suggest this is because if you are in separate locations a website becomes a convenient central location to share work.

RC1140
+1  A: 

Since you're working on laptops, it would be nice if you could commit even while the other guy's laptop is not reachable. Therefore a distributed version control system is your best bet.

I recommend mercurial as it is free, has great windows support and is simpler to master than git. This introduction includes instructions on setting it up as a server so that you can pull changes from each other.

You might have to use something like dyndns to set up fixed host names for both laptops, and configure your firewalls and NAT routers to be able to connect to each other.

Wim Coenen