Subversion With Mac OS X Tutorial

Updated: April 2011

Subversion is a version control system that allows you to work with other people on a project and switch back easily to every version ever made. It can be used for all kinds of projects like application source code, web sites, even images or just simple text documents. Once you have it all set up and followed all the steps described below, it is easy to handle and a very useful thing – not just for computer geeks.

About This Tutorial

This tutorial explains the basics from installing subversion and getting started to working with other people on the same project. It is written primarly for Mac OS X users, but since Subversion itself works the same on all platforms, most of this tutorial should apply to Linux or Windows users, too.

The Concept of Subversion

Subversion works by setting up a central repository on a server or local computer that every user connects to and downloads a personal working copy from. When changes are made to the working copy, they can be uploaded to the repository. If these changes conflict with changes other people may have uploaded since the last time you updated your working copy, subversion tries to merge these files and solve the conflicts.

Downloading and Installing Subversion

I recommend downloading the Subversion Mac OS X package from Collabnet

Download and run the installer. Note that Subversion itself doesn't feature a graphical user interface, so you won't find any new files in your application directory after installation. Instead it installs some command line commands into the directory /opt/subversion/bin* on your hard drive. *Note: For other Subversion packages this path is usually /usr/local/bin.

To be able to call the Subversion commands from every directory, you must add it to your path. If you don't know what that means, don't worry. Just follow the instructions.

Open the Terminal application. It can be found in the /Applications/Utilities folder. Whenever you see below a line starting with a dollar sign, you should type the text after the dollar sign in your terminal and hit return.

Start by creating a new text file called '.bash_profile', i.e. with the command line text editor pico:

$ pico .bash_profile

Add the following line to the text file:

export PATH=/opt/subversion/bin/:$PATH

Now hit Control-X, then confirm saving the file with 'y', followed by return.

You have just added Subversions's location to your path. Let Terminal read this file to know the path has changed (there's an empty space between the dots):

$ . .bash_profile

Creating a Sample Subversion Project

First we will need to set up a Subversion repository on our local computer. That is the place to store all versions of our project. Now create your repository like this:

$ svnadmin create SVNrep

This will create a repository named 'SVNrep' in your your home directory, although svnadmin won't give you any feedback. If you don't trust me on this, you can check the existence of this folder by typing 'ls' in the terminal or looking for it in the Finder.

Next we create our sample project. Create a new folder and an empty file named 'test.txt' inside this folder:

$ mkdir test
$ touch test/test.txt

Let's import this project into the repository. Type in your terminal, by replacing 'sara' with your own user name:

$ svn import test file:///Users/sara/SVNrep/test -m "Initial import"

This will output:

Adding test.txt
Committed revision 1.

We have just imported the folder 'test' into the repository 'SVNrep'. Each version in the repository is called a "revision" and is identified by a unique number. Always provide a short message ('-m') of the changes you made to the repository like we just did!

Retrieving Files From Subversion

Now we get a copy to work on from the repository. This process is called "check out":

$ svn checkout file:///Users/your_user_name/SVNrep/test test-copy

The output will show all files added ('A') to our working copy:

A test-copy/test.txt
Checked out revision 1.

Change into the working copy directory by typing:

$ cd test-copy

Next check the content of our working copy in the terminal:

$ ls -a1

This will output the directory including hidden files:

.
..
.svn
test.txt

Note the hidden directory '.svn'. This holds some subversion info like the name of the repository, so you don't have to type that in the future. If you would like a copy of your repository without this hidden directory in every folder, you have to export a copy:

$ svn export file:///Users/your_user_name/SVNrep/test test-copy

This copy is now safe to deploy on the web. It is not a working copy though, so you can't commit changes back to the repository from this folder.

Time For Changes

It is time to make some changes to our file and save it back to the repository. Open 'test.txt' from the working copy with your favourite text editor and type "Hello world" or whatever you are up to, then save the file.

You can then query Subversion to find out the differences between the repository and your copy:

$ svn status

This will state that our file has been modified ('M'):

M test.txt

Now we want to update the repository with the changes we made. This process is called "committing":

$ svn commit -m "Added some text"

This will output:

Sending test.txt
Transmitting file data .
Committed revision 2.

Dealing With All These Versions

Let's assume, that someone else working on your project made changes to the repository. You will want to update your local working copy to incorporate the changes:

$ svn update

Because in our example nobody else made changes to the repository, this will do nothing and output:

At revision 2.

To list all revisions in the repository, type:

$ svn log

This will output a list of all revisions with it's messages:

------------------------------------------------------------------------
r2 | sara | 2006-10-08 16:41:46 +0200 (Sun, 08 Oct 2006) | 1 line
Added some text
------------------------------------------------------------------------
r1 | sara | 2006-10-08 16:10:36 +0200 (Sun, 08 Oct 2006) | 1 line
Initial import
------------------------------------------------------------------------

If you would like to see the exact differing lines to a specific revision, i.e. revision 1, just type:

$ svn diff -r 1

The output states that the line "Hello world" has been added ("+"):

Index: test.txt ===================================================================
--- test.txt (revision 1)
+++ test.txt (working copy)
@@ -0,0 +1 @@
+Hello world

Maybe you would then rather like to switch back to an older revision:

$ svn update -r 1

This will update ('U') your copy back to revision 1 and output:

U test.txt
Updated to revision 1.

Note that all commands are used on the whole current working directory. You could also provide a single filename for each of these commands, i.e. 'svn update test.txt'.

Renaming, Adding And Deleting Files From The Repository

Sometimes you may add new files to your working copy.

$ touch test2.txt

They will not be included in the repository though, unless you manually add them to the repository:

$ svn add test2.txt
$ svn commit -m "added new file"

If you later would like to remove a file from the repository, type likewise:

$ svn delete test2.txt
$ svn commit -m "deleted file"

Note that you should never delete or rename files from your working copy without Subversion knowing. You can modify inside your files as much as you like. But if you just rename files or move them to another folder, Subversion will loose track of them. Always use 'svn' commands for those operations.

This is how you move a file accordingly:

$ svn move oldfilename newfilename
$ svn commit -m "moved file"

All of these commands will not only affect the repository, but your working copy as well. So you should never have to delete or rename a file with your Finder.

If you are working alone on a project, this is it! Well, basicly. The next chapter will explain dealing with multiple users.

Working With Other People

To act as if someone else was working on your project, you could now check out a second working copy named i.e. 'test-copy2' into your home directory and make some more changes to it. Then commit it to the repository following the steps from above.

Now think of a possible conflict: two people have downloaded their working copy and started working on the same file. When Sara commits her files before Michael does, Michael will get an error message when committing because his copy is not up to date any more:

$ svn commit -m "Some change by Michael"
Sending test.txt
svn: Commit failed (details follow):
svn: Out of date: '/test/test.txt' in transaction '3-1'

Michael will then first have to update his working copy by typing 'svn update'. This will merge Sara's earlier changes into Michael's working copy, line by line.

Michael can now commit the merged copy to the repository. In some rare cases however, there my be a conflict that Subversion cannot solve itself. It will then create three files in Michael's working copy:

test.txt.mine
test.txt.r2
test.txt.r3

Michael now has to manually put the pieces together in the file 'test.txt', deciding which changes to keep. Only when this is made and the three extra files are deleted, Subversion will allow Michael to commit his files.

Now go play around with it to get used to it. Of course there is more to Subversion. You could type "svn help" in the terminal to list all commands or read the freely available SVNbook at http://svnbook.red-bean.com

Graphical User Interfaces

Many people don't like working with the terminal. They find it complicated to remember the text commands, as opposed to clicking on buttons in applications. There is a couple of free or commercial apps available on the internet, that provide a graphical user interface for Subversion commands. I think it's best practice to learn Subversion from the terminal first, before you use a graphical client, to understand the way subversion works better.

A nice and free GUI for Mac OS X is svnX. To manage your working copies from the same application that you write your code with, the text editor TextMate is a good choice. TextMate includes a Subversion bundle that allows you to easily invoke most Subversion commands from the menu. Only once for setting up the repository and checking out the first working copy, you will have to use the terminal. After that, just press Shift-Control-A to open the Subversion bundle menu.

Questions or comments? [121]

  1. Alpha () said 2421 Tage zuvor:

    Collection of AppleScripts for Finder (made by me) can be also useful to make the most frequent operations easier.

  2. Charles Lloyd () said 2408 Tage zuvor:

    This was the best svn quick-start tutorial I found on the web (especially since I’m a MacOSX user). I glanced at a few other articles and didn’t see clear instructions for geting up and running like I found here. An article this well-written is a rare find on the net. I was up and running with my new svn repository in a matter of five minutes.

  3. Raj () said 2148 Tage zuvor:

    Excellent tutorial on the basics. Thanks! Got me up to speed enough to get a simple repository going.

    (However, in trying to print this from different computers, the right margin cuts off the text. You might want to adjust your print css to increase the right margin a bit.)

    Thanks again!

  4. Niko (http://www.rubyrobot.org) said 2139 Tage zuvor:

    Printing should work now! Tested with Firefox.

  5. Silverhammer (www.silverhammer.org) said 2138 Tage zuvor:

    Echoing the previous comments, this is by far the best quickstart I’ve been able to find for running SVN on Mac OS X. Thank you very much.

  6. Ryan () said 2128 Tage zuvor:

    I’d just like to say thank you for writing this straight forward tutorial. This is the first tutorial that I have came across that makes perfect sense and allowed me to get started!

  7. AJ () said 2113 Tage zuvor:

    Like others here I looked at a bundle of other ‘quick-start’ tutorials but found none that really seemed to explain subversion as well as you have done here.

    I am now ready to roll up my sleeves and begin playing around with subversion – thanks!

  8. Erinc () said 2108 Tage zuvor:

    Your tutorial helped me a lot too. Thank you for your time.

  9. Alan Bristow (http://www.fluffdesign.com) said 2085 Tage zuvor:

    Thanks lots for this. On the GUI front, I am looking at http://zigzig.com/

  10. Olly () said 2071 Tage zuvor:

    Hi, Can you help me?

    I’ve changed the .bash_profile file as you have said. It now looks like this:
    ————————-
    export PATH=/user/local/bin:$PATH

    # Setting PATH for MacPython 2.5 # The orginal version is saved in .bash_profile.pysave
    PATH=”/Library/Frameworks/Python.framework/Versions/Current/bin:${PATH}”
    export PATH
    ————————-

    But the svnadmin is returning a ‘command not found’ message. I’m guessing this might have something to do with the Python path thing (I played around with Python a while back but never really use it). I’ve tried your line of code at the start and end of the file, but not luck.

    Any assistance much appreciated.

  11. Niko (http://wwwww.rubyrobot.org) said 2069 Tage zuvor:

    Hi Olly,

    your .bash_profile should work. Are you sure you installed svn correctly? Try calling it directly with it’s full path: “/usr/local/bin/svnadmin”

    If that doesn’t work, you can search your hard disk like this:
    “find / -name svnadmin”

  12. Olly () said 2069 Tage zuvor:

    Here is what I get when I type in it’s full path.

    Le-Big-Mac:~ Olly$ /usr/local/bin/svnadmin
    Type ‘svnadmin help’ for usage.
    Le-Big-Mac:~ Olly$ svnadmin help
    -bash: svnadmin: command not found
    Le-Big-Mac:~ Olly$

    Sorry to bother you, but can you advise what this means? I’m new to *nix and Subversion and really need to learn it quick!

    Many thanks for any assistance.

  13. Niko (http://www.rubyrobot.org) said 2067 Tage zuvor:

    I found it, it’s really simple: a typo in your .bash_profile

    Make sure you change the faulty line:

    export PATH=/user/local/bin:$PATH

    to:

    export PATH=/usr/local/bin:$PATH

    That should be it!

  14. Olly () said 2067 Tage zuvor:

    Groovy! Thanks for your help.

  15. Nick () said 2050 Tage zuvor:

    How do I uninstall this client?

  16. Niko (http://www.rubyrobot.org) said 2046 Tage zuvor:

    Nick: most unix tools don’t include an uninstall script by default. In this case look inside the package and see what files are included, then delete by hand.

    Or just delete every file in /usr/local/bin and /usr/local/share/man that starts with “svn”. It’s not necessary though. Subversion uses only very little space on your hard disk and does not interfere with your system.

  17. lobsterman (caspar.bgsu.edu/~software/java/) said 2033 Tage zuvor:

    i have been a newbie to command line stuff and i have been struggling with working through the begining of the instructions – at the ..bash_profile i kept getting

    -bash: ..bash_profile: command not found

    until i realized rather by accident that there was meant to be a space between the two dots. a note in the instructions to that would have been helpful, other than that things work like a gem.

    thanks, ciao,

  18. Quiz (http://www.quizduell.com) said 2032 Tage zuvor:

    Very, very good tutorial. Thank you very much.

  19. Niko (http://www.rubyrobot.org) said 2031 Tage zuvor:

    Thanks for all your friendly comments! It’s good to see that this tutorial is helpful for so many people.

  20. Calvin (http://www.sqlbuddy.com/) said 2031 Tage zuvor:

    Oh man, I just spent an hour trying to set my path. This page was the first one that said to type the . .bash_profile. Worked like a charm after that. Thanks a lot!

  21. Carlos Le Mare () said 2018 Tage zuvor:

    It work!!!… I having issues trying to updates files in my repository SCPlugin with authentication… but working with command line reveals the problem… for some reason (I don’t know why yet) my subversion is trying to use my username in mac os x to upload the files, but I use another username in the repository. Anybody knows how to change the default username? (mac os x 10.4.11)

  22. Anthony (http://www.anthonysmith.me.uk/) said 2011 Tage zuvor:

    Thanks – I’ve been meaning to get to grips with svn for ages, and it’s not too difficult after all!

  23. TrainMe (http://trainme.ru) said 2010 Tage zuvor:

    How i can commit just one file?

  24. Niko (http://www.rubyrobot.org) said 2010 Tage zuvor:

    Carlos: Yes, that’s standard behaviour for most shell commands. You should be able to provide your username in the the subversion configuration file or use “-l username” directly when connecting from command line.

    Trainme: to commit just one file, just specify the file name!

    svn commit myfilename -m “Just one file!”

  25. edouard () said 1944 Tage zuvor:

    thank’s for this tutorial … it has been very helpful since svnX seems not to work with mac osX.5 … at least the terminal performs quite well the same ..
    ^^

    ed.

  26. freefone () said 1943 Tage zuvor:

    excellent. excellent. thank you!!
    was wondering if someone here can help: i’d like to keep both a local and remote repository. is there a way to commit to a local repository and then replicate the local server copy to a remote location. thx.

  27. Niko () said 1938 Tage zuvor:

    I don’t see how duplicating a repository would be useful, if not even harmful – unless it’s for reasons of backup. In that case simply copy the repository folder to the remote location via ftp or rsync…

  28. PXD () said 1931 Tage zuvor:

    Excellent article, nice and easy :)

  29. Wolfgang () said 1878 Tage zuvor:

    Thank you very much for this tutorial. Your work is very much appreciated!

  30. Beltonaki () said 1850 Tage zuvor:

    This tutorial is still very nice indeed. Thank you for making subversion an easy start! :)

  31. Raf (www.innovat-concepts.com) said 1845 Tage zuvor:

    Great tutorial, thanks a lot :)

  32. Patrick () said 1820 Tage zuvor:

    Thanks for the tutorial, it was very helpful.

    I’m looking at Xcode 3.1 and it seems that all of most of the commands in the tutorial are duplicated in the SCM menu (add, commit, etc.). Is that the case? If so, can I skip learning the terminal commands (although of course learning the concepts) and rely on the Xcode 3.1 SCM menu?

  33. RP () said 1768 Tage zuvor:

    I have an external drive called ‘SVN’ that I’d like to use as my repository (feeling it’s best to have it somewhere other than my local machine), but I don’t know how to set this drive as my repository. Can anyone help with the proper commands? Thanks.

  34. Christelle () said 1747 Tage zuvor:

    Excellent tutorial. Everything works like a charm, I love it!

  35. Rocco (www.getzs.com) said 1713 Tage zuvor:

    I would like to add my voice to the chorus of thankful people. Your tutorial is exactly what I was looking for to get started. Thanks!

  36. Arthur () said 1712 Tage zuvor:

    Sorry, but after I`ve typed this “svn status” I saw this line “svn: warning: ‘.’ is not a working copy”
    why?! (sorry for my English) and how can I correct it?

  37. Niko (http://www.rubyrobot.org) said 1711 Tage zuvor:

    Arthur: Make sure are in the directory of your working copy, before calling svn commands: ‘cd test-copy’

  38. Emmanuel Seynaeve (none) said 1711 Tage zuvor:

    Thanks for the great tutorial. Really the best one out there!

  39. Per André Rønsen (http://peshmedia.no) said 1704 Tage zuvor:

    Thanks, great help!

  40. Moses Hall (www.blugs.com) said 1692 Tage zuvor:

    I think it would be helpful to potential downloaders to mention that installer Subversion-1.6.1.zip is Intel-only. The installer did not check the machine architecture or give any warnings, it just installed useless Intel binaries on my PowerPC Mac. Any chance of a universal version?

  41. tb () said 1691 Tage zuvor:

    … second the last comment :-(
    Warning would be nice, what the best way to uninstall it now? Will this work or is there more files scattered throughout the system:

    rm /usr/local/bin/svn*

  42. tb () said 1691 Tage zuvor:

    … this works fine:

    http://subversion.tigris.org/getting.html#osx

    http://downloads.open.collab.net/binaries.html

  43. Niko (http://www.rubyrobot.org) said 1689 Tage zuvor:

    Sorry about the intel-only version. I will try to provide a universal package within the next few days. For now, PPC users are encouraged to download from open.collab.net. (See comment above)

    PS: You don’t have to remove the intel version before installing the universal package, as the files will be overwritten.

  44. Scott (http://stereointeractive.com/blog) said 1677 Tage zuvor:

    This is a great tutorial. The SVN book is good, but it’s nice to have this summary all on one page. Thanks so much.

  45. Damien McKenna (http://mc-kenna.com/) said 1669 Tage zuvor:

    Good article, very informative, and timely given that you wrote it around SVN 1.6. FYI the cross-platform GUI tool SmartSVN (smartsvn.com) was also updated to work with SVN 1.6, and it’s a really good GUI tool.

  46. Jeremy Whitlock (http://www.thoughtspark.org) said 1668 Tage zuvor:

    Nice article but you might want to reconsider the binary you’re linking to. Yes, I know it appears to be one you’re maintaining but there is another that is much more featureful located here:

    http://tinyurl.com/svn-osx

    It works on Tiger+, all 4 supported OS X CPU architectures (ppc, i386, ppc64 and x86_64), it includes all language bindings (Java, Perl, Python and Ruby) and includes the Apache modules. Oh…and svnserve is built with SASL support. Not trying be a pain but it might save you some time maintaining it yourself.

  47. Niko (http://www.rubyrobot.org) said 1661 Tage zuvor:

    OK… I removed the download link to my package from the article and do suggest downloading from Collabnet.

    The goal was to maintain a smaller package that includes only the files necessary for basic Subversion usage, but it doesn’t really make sense spending the time maintaining a package, just to save a few megabytes hard disk space.

  48. Le Thanh Duc Mr () said 1655 Tage zuvor:

    Really helpful.
    Deeply appreciate for your work

  49. Brendan Wood () said 1654 Tage zuvor:

    Thanks for the tutorial! I’ve installed SCPlugin and it works great, but there were some hiccups. SCPlugin allows you to control Subversion from contextual menus in the Finder, making life much easier. But if you’re running Leopard, make sure you disable the Finder’s icon preview option (View —> Show View Options) for any folders that contain files linked to a repository…it screws up SCPlugin’s “badges” that indicate the status of files.

  50. Patrick () said 1643 Tage zuvor:

    I just found this tutorial. It is very well done but I am having problems.
    Whenever I type in . .bash_profile I get a command not found message, and I am making sure that I include the space. Can you help? it would be much appreciated.

  51. Niko (http://www.rubyrobot.org) said 1641 Tage zuvor:

    Patrick: make sure 1) the file .bash_profile exists in your home directory, 2) your working directory is your home directory when typing “. .bash_profile”

    Also check if the file’s content is correct, see article above!

  52. Domenico () said 1637 Tage zuvor:

    I was experiencing troubles with the installation (always getting command not found) and at last, reading and re-reading their documentation, I realized that the guys at collabnet moved all the stuff into /opt/subversion in place of /usr/local/bin. Check their Readme file. I thought it might be convenient you to know it. All the best.

  53. Niko (http://www.rubyrobot.org) said 1636 Tage zuvor:

    Domenico: thanks for your comment. I have updated the article.

    The path to the Subversion binaries from the Collabnet package is /opt/subversion/bin

    Sorry for everyone who has experienced trouble with this.

  54. thomas () said 1636 Tage zuvor:

    Question,
    I would like to work with a friend of mine on a java project (Eclipse).
    The plan is to set up my computer (Mac Pro) as a server (Apache), everything is supposed to go through my computer.
    Is there a chance to get some help how to do this.
    Thank you a lot

  55. Mansi () said 1608 Tage zuvor:

    How do i set the username and pasword.
    Also is it possible to get anonymous access. If so how do i go about this.

  56. amenity () said 1592 Tage zuvor:

    Thanks, this is by far the best tutorial I’ve found.

  57. titanium_geek (http://www.creativehedgehog.com) said 1589 Tage zuvor:

    Absolutely brilliant tutorial. This is the kind of thing I wish I was writing. Fantastic, thanks.

  58. Grant Gortsema () said 1581 Tage zuvor:

    Was thinking of moving to subversion from ClearCase and before that StarTeam for quite a while now. Now I am moving jobs to one that uses it and wanted to get a quick heads up on setting it up locally so I don’t look like a total newb. This quick-start was perfect for me! Thanks so much. One of my biggest pet peeves is tutorials that leave out steps and leave me with bolloxed partially installed packages on my computer. Everything worked like a charm and I am off to figure out how to get MyEclipse to work with my new repository. Thank you again!

    -Grant Gortsema

  59. karen (tagstrong.com) said 1572 Tage zuvor:

    i am trying to figure out how to checkout my local repository to my web host.

    I cant run a server on this server but i could source control my files this way.

    anybody know how to do that?

  60. Josh () said 1558 Tage zuvor:

    Trying to figure out how to share the repository’s files on my Mac with a colleagues Mac. Can work it out. Help anyone?

    ~Josh

  61. Geoffrey Faivre-Malloy (http://bleedinghemorrhoidscures.com) said 1557 Tage zuvor:

    Woot! Got me up and running. Thanks for the tutorial!

    It was EXACTLY what I needed :)

    G-Man

  62. Anuradha Uduwage (http://anublog.colombounplug.com) said 1527 Tage zuvor:

    Thanks for the great post. I am very new to mac in fact this is my first week . I downloaded the package from Collab.net But just before the installation i read the message and realize that its going to install SubVersion server along with the client. I do all my development on eclipse. I want to keep my google code project insync. Does this mean I still have to install the client and the server both on my mac?

    Thanks
    Anu

  63. Niko (http://www.rubyrobot.org) said 1525 Tage zuvor:

    Hi Anuradha,

    just go ahead and install both server and client. It doesn’t take up much disk space.

  64. TonyRLA () said 1483 Tage zuvor:

    First, I want to echo what everyone else has said about this excellent tutorial. I’ve been flailing around trying to get SVN working for months by various tutorials. I only wish that I had found yours earlier. I don’t know how I didn’t – I guess maybe Google likes you better now. My only suggestion is that you or another contributor might want to make a screencast so the slower people (me) can see exactly what you mean.

    Anyway, the reason I’m writing is to ask your advice on configuring the right SVN set-up for my needs. Here’s my story:

    I have a live managed VPS running Centos 5x with Cpanel WHM, a couple other small shared hosts at different locations, a test server on my on an older Mac running Ubuntu on my LAN, and I develop locally on my MacBook Pro using a combination of Adobe CS3, rubberbands, scotch tape, and I’m interested in learning how to use one of the IDEs likely Apatana. I have various sites on the remote servers obviously, plus the actual Centos configuration of the server itself – though I’m likely to switch hosts to use my growing Ubuntu love.

    I’d like to be able to coordinate all of this (obviously) with SVN – including the actual config of the VPS (I’ve screwed that up a couple times and without a snapshot on hand to roll back to, I’ve had to rebuild from scratch a couple times.

    Right now I’ve got a proliferation of files: one set on the live servers (VPS and others) one set on my test server, plus a set of files and scraps on my laptop. Not only is this wasting tons of storage, it’s also confusing as hell. And presently I’m not developing with anyone else but shortly I’ll need to give others access to the development files.

    I know that this is exactly what version control is supposed to solve, but I just haven’t been able to figure my way through all the ins & outs. I’m sure there are other like me.

    Niko, can you please explain to me using your apparent gift for plain English how I can get this under control? How do I manage and sync everything properly and consolidate all my resources. If you don’t have the time or energy to talk me through this, maybe you could point me to another web resource?

    Thanks again.

  65. Orlando Leite (http://orlleite.com) said 1470 Tage zuvor:

    Man! Awesome! All that I needed.

  66. Predictii Pariuri (http://www.omnibet.ro/) said 1459 Tage zuvor:

    Great choice by picking Subversion. I use Subversion myself, and the reason why I like it the most is because Subversion tracks structure of folders. In my opinion, it is the best version control system out there. Good luck with it

  67. Vivs () said 1459 Tage zuvor:

    Great work !!!!

    But i just want to know that , is there any need to create trunk folder while setting up svn repository for the project as many people suggest to do so. But you haven’t shown any steps regarding trunk. Please suggest me related to same.

    Regards
    Vivs

  68. Niko (www.rubyrobot.org) said 1459 Tage zuvor:

    Vivs,

    Not sure if that’s the reason.. but creating a trunk folder makes it easy to create branches of your project.

  69. Martin (http://www.home-inspection-software.com) said 1453 Tage zuvor:

    I need to completely delete/erase subversion and reinstall. I know nothing, I’m stupid, I’ll admit it, so I would REALLY appreciate step-by-step instructions on how to do this, without any of the geek lingo. A “How to remove Subversion from your Mac for the Complete Idiot” sort of thing — it would probably become wildly popular.

    Tah.

  70. Niko (www.rubyrobot.org) said 1452 Tage zuvor:

    Martin, just reinstall Subversion from the package. As for the repositories, they are just folders you can delete in the finder.

  71. hallodom (www.hallodom.co.uk) said 1423 Tage zuvor:

    Great article – SVN used to be foggy but this has really helped!

    I agree with some of the comments that technical requirements for the binaries and versions should be written into the article.

    Luckily I have an Intel machine and all worked fine.

  72. Mustafa () said 1421 Tage zuvor:

    Thanks for a wonderful article.

    I have a question. How can we access this repository remotely? On the local machine, where you’ve setup the svn repository, it can be accessed using file:/// but this doesn’t work if the repository is on a remote machine (in my case, running Mac OS X 10.4) – IF YOU MOUNT THE REMOTE MACHINE’S DRIVE. How can i access this repository remotely? Any idea?

  73. Niko (www.rubyrobot.org) said 1416 Tage zuvor:

    Mustafa: To access remotely, you can i.e. set up apache to serve svn.

    Or, much easier, if you can access the svn server via ssh, install the svn client on your client machine and checkout via
    “svn co svn+ssh://your.remote-server.com/path/to/svn/repo”

  74. Mustafa () said 1414 Tage zuvor:

    Thanks, appreciated.

  75. sid (http://sidharthjuyal.tech.officelive.com/default.aspx) said 1386 Tage zuvor:

    thanks for the “Hello World” demo, that was great help!!

    I’ve a question – what was that I downloaded from collabnet and then modified my .bash_profile? You said it would add some commandline tools, but all the command you used in here were already working like ‘svnadmin’ and ‘svn’

  76. Infinity () said 1368 Tage zuvor:

    Hello,
    This is nice tutorial. For begginer or people who don’t like Terminal.app, SPMPT make this job as well. It’s a package which include Subversion server, Trac (edgewall) and python mod_python. It’s works out of the box.
    http://sonique54.free.fr/spmpt/

  77. Matt () said 1362 Tage zuvor:

    Thanks for this terrific tutorial! I’ve wanted to learn how to use subversion for a while but couldn’t wrap my head around it until I read your article.

    I’m still a little unclear on real world application of subversion. For example, how would one use subversion in editing a wordpress theme? Would you create a repository for the entire wordpress installation or just the theme files?

    Thanks,
    matt

  78. Neil () said 1337 Tage zuvor:

    Thank you very much for this informative tutorial. I wish you prosperity in your endeavours

  79. webthesurfi rugs webdesign (http://freind.org/webthesurfi-rugs-webdesign.html) said 1335 Tage zuvor:

    I’m still a little unclear on real world application of subversion. For example, how would one use subversion in editing a wordpress theme? Would you create a repository for the entire wordpress installation or just the theme files?

  80. Mike () said 1322 Tage zuvor:

    I would recommend adding the path to the command line prompt in your examples.

    Running the commands in the wrong directory causes errors… your tutorial doesn’t help me get around this.

    Adding the path would make things far clearer.

    Thanks.

  81. Sushi () said 1320 Tage zuvor:

    Good article thank you!
    Been a real help!

  82. andy (http://www.buisness-money.com) said 1313 Tage zuvor:

    it is the best version control system out there. Best Regards

  83. psychic (http://www.thewhatbox.com) said 1206 Tage zuvor:

    Great article. I always like reading insight on Mac stuff. Call me a geek.

  84. online casino (http://onlinecasino-free.com/) said 1206 Tage zuvor:

    Thank you so much for the instructions.

    BTW, You did a typo in the begin of your article.

    About This Tuturial <—

    I hope that helps.

  85. eurosportbet (http://www.paris-sports.info/eurosportbet.php) said 1200 Tage zuvor:

    Bonjour et merci pour les informations bonne continuation

  86. Anne (http://umpeople.memphis.edu/awarlmnt) said 1197 Tage zuvor:

    Great novice tutorial — thank you!!

  87. Bruce Cichowlas () said 1176 Tage zuvor:

    I ran into an error

    svn: no such table: rep_cache

    However, the advice at this site seems to be helpful:

    http://trac.apostrophenow.org/wiki/ManualInstallation?version=35

    Bruce

  88. arono () said 1164 Tage zuvor:

    i spent 4 hours yesterday to understand and set up subversion on mac and windows. I could have done it in 5 minutes if i had find your wonderfull tuto before.
    Thanks anyway !

  89. cloudobjects (cloudobjects.blogspot.com) said 1160 Tage zuvor:

    I have written a blog post about graphical user interfaces for svn on Mac OS X on http://cloudobjects.blogspot.com/2010/10/using-subversion-on-mac-os.html.
    I coud not find a satisfying non-commercial all in one solution. Hints to better solutions are greatly appreciated.

  90. dave () said 1134 Tage zuvor:

    Thanks this was very helpful!

    I have one (sorta dumb question I think) question. Does anything ever change in the original test directory that the working copy is made from? Is there something that should happen to that directory after committing?

  91. Niko (www.rubyrobot.org) said 1132 Tage zuvor:

    Dave, you can delete the original directory after it has been imported into the repository, files in this directory will not be changed.

  92. Jay () said 1131 Tage zuvor:

    Very very useful!

  93. Matjaz () said 1090 Tage zuvor:

    i want to connect apache+svn, and to do so you need to add these two lines in httpd.conf

    LoadModule dav_svn_module /opt/subversion/lib/svn-apache/mod_dav_svn.so

    LoadModule authz_svn_module /opt/subversion/lib/svn-apache/mod_authz_svn.so

    but i always get an error
    ./apachectl: line 78: 1913 Segmentation fault $HTTPD -k $ARGV

  94. PierreK () said 1033 Tage zuvor:

    Excellent Stuff!

    Always nice to find easy tutorials on the web. This helped me a lot.

    Thanks a bunch!

    Pierre

  95. Greg () said 1019 Tage zuvor:

    This is an excellent tutorial, but you should update it.

    Subversion is now (10.5 at least) installed on every Mac OSX. The installation instructions you give are now not needed. You could give instructions on updating subversion, but it probably doesn’t need to be the first thing you discuss.

  96. Zihan Chen () said 1017 Tage zuvor:

    Really an excellent tutorial, like it. Thank you.

    Have subversion installed and svnx works like a charm

  97. Chrizz () said 988 Tage zuvor:

    Thanks for this tutorial.
    But it didn’t work for me. I installed the latest svn. When i try to create a new text file called ‘.bash_profile’, terminal says „command not found”. Also i was not succesful in adding svn location to my path. When i type svn help i can see it’s still the older version which is integrated in Mac OS. What do you mean with pico editor? It’s launched in terminal via „pico filename”?

  98. lawless () said 970 Tage zuvor:

    Still relevant after all this time. Was looking for the proper syntax for an svn export and happily stumbled across your post. Thanks!

  99. John O () said 941 Tage zuvor:

    Hi,

    Just getting started with SVN and this tutorial looks just what I need. One question though: how would I set up a NAS to contain the repository rather than my local machine? My NAS is raid-enabled so much safer for the core files.

    Thanks

    John

  100. Mitch () said 934 Tage zuvor:

    Hey John,
    if your NAS is not able to run a svn-server itself, synchronizing via rsync should work.
    Regards

  101. art (www.google.com) said 921 Tage zuvor:

    easy and concise read. a good refresher of Revision Management and intro to subversion. I am still dumbfounded about an overall revision on a set of files, a build revision ?

    thanks .

  102. Elaine Murphy (http://www.wandisco.com) said 919 Tage zuvor:

    Latest MAC OS X Subversion 1.6.17 Binaries now available from WANdisco here: http://www.wandisco.com/subversion/download#osx

  103. Robert () said 890 Tage zuvor:

    Thank you! Nice tutorial

  104. Tom (blog.thomasbendig.de) said 863 Tage zuvor:

    very nice tutorial. Thank you! i will try the SVN function within Textmate too :)

  105. iOSFixboy (http://www.jeiboy.net/) said 836 Tage zuvor:

    You rock dude, nice tutorial

  106. Aadithya (www.akamai.com) said 803 Tage zuvor:

    Just too brilliant!! Thanks a lot for the tutorial!!

  107. jose Iraheta (www.jnova.info) said 787 Tage zuvor:

    Finding this kind of tutorials is rare. thank you so much for taking the time to write this with such detail and consideration, you have no idea how much you have helped me. once again, thank you!

  108. Gary () said 782 Tage zuvor:

    Fantastic Tutorial!! Thanks

    All the GUI clients seem so expensive for a small time coder.

    1 quick question, is there a quick way to add a complete project i.e. initial commit instead of adding individual files?

    Thanks again,
    Gary

  109. Gary () said 782 Tage zuvor:

    Sorry for my incompetence,

    I thought the import statement was used for a single file. After reading through the tutorial again the penny dropped.

    Once again thanks for an amazing tutorial.

    Gary

  110. code4jhon (none) said 750 Tage zuvor:

    Really good. Thank yo very much for your contribution.

  111. ejohnson () said 746 Tage zuvor:

    This tutorial is a welcome change from the usual half-explanantions, unstated assumptions and missing caveats one normally encounters with any software download and implementation instructions. Thus, I turn to you for possible guidance. I am having one problem beyond the scope of the tutorial. I have Eclipse GUI downloaded and the Collabnet Subversion software. Everything checks out and they seem be aware of each other, but I can’t get Eclipse to work with the repository in the manner my instructions suggest. For example, it took me a lot of trial and error just to get the SVNrep to show up at all in Eclipse. I’m still not sure it is set up properly. One reason is that I can’t get it to access/checkout any files even though the terminal access indicates they have been imported.

    Do you have any suggestions for decent instructions on setting up and working with Eclipse/Subclipse?

  112. Christo () said 712 Tage zuvor:

    Brilliant tutorial, thank you for that !
    Now I have a question regarding your example.

    Assume I have this test folder that I imported into the repository. And this test copy that I checked out immediately after to work on it on my local machine.
    I would like to save this test copy as a snapshot (maybe with different features than the original test ) and under a different name on the repository so that John or Jane can look at it and give me their opinion. Can I Just use an “import” on my test copy to incorporate it on the repository ? Every commit will be only related to that copy or will also affect the original test ?
    How should I do that?
    Thank you !

  113. Nirbhay () said 680 Tage zuvor:

    Great tutorial, very helpful.

  114. Ayesha () said 674 Tage zuvor:

    Thanks for these nice and simple instructions. I was trying to use Versions for Mac but I did not find it very user friendly. Command line instructions for me for now.

  115. Malay () said 645 Tage zuvor:

    First of all thanks for the nice tutorial.

    My problem is I am able to create a repository from terminal. When I try to import project from SVN in SVN at that time it gives an error “Unable to open ra_local session URL”. What to do now?

    Any help would greatly appreciated.

    Thanks in advance.
    :Malay

  116. Daniel () said 631 Tage zuvor:

    I came across this post while trying to find a quick start guide for Subversion for my Mac. I have to say, this is a shining example of what a straightforward and clearly written tutorial should be like! Thank you for writing it!

  117. vks () said 614 Tage zuvor:

    Very helpful !!

  118. Ira (http://google.com) said 582 Tage zuvor:

    I Fully understand what your position in this matter is. Even if I may disagree on some of the finer aspects, I think that you did fantastic job outlining it. Without a doubt beats the need to study it on my own. Cheers. dd1

  119. Ivan () said 562 Tage zuvor:

    This was incredibly helpful. Thank you.

  120. Derak () said 403 Tage zuvor:

    There is no need to install subversion from other sources. Xcode already includes it.

    /Applications/Xcode.app/Contents/Developer/usr/bin/svn
    Add it to you local bin directory and it should work just like described above.

    sudo ln -s -v /Applications/Xcode.app/Contents/Developer/usr/bin/svn /usr/local/bin/svn

  121. Peter () said 298 Tage zuvor:

    The tutorial indeed looks very nice.
    However, I’m stuck already at the beginning before managing to install Subversion from CollabNet.

    After downloading the package and accepting the licence agreement, the installation tool doesn’t allow me to select the destination account where to install the software (the “continue” button remains grey).

    Any solutions?

Comments are closed.