So you want to get Subversion running on your mac, complete with nifty finder integration? Good, welcome to the wonderful world of revision control.
This little ditty will assume that you have an SVN repository to connect to already, and all you need is the client-side tools. If this is not the case, then move on.
That is a valid question, and one that I get pretty often when I am talking about CVS, SVN or Arch. In short revision control breaks down like this:
Go that? Excellent, moving on.
So now that we have established what version control is, how do we use it? For basic operation there are only a few command we really need to know:
There are a number of other commands, such as mkdir (create a new directory) and blame (assign blame to someone for a screwup... one of my favorites.) but those outlined above are the most used.
The easiest way to install SVN is by browsing to the binary downloads page and scrolling down until you find MacOS X. You will want the second link, the one that does not rely on Fink. Grab the 1.2.1 (or whatever is the newest) binary from the Metissian page and install it.
After the installer has run its course you now have a running SVN client on your mac. Next we have to decide how we are going to access that SVN client.
There are two ways to use SVN on your MacOS X box, either through the terminal or through a third party GUI based solution. I will not cover the terminal in depth since for most of us a Finder integrated solution is superior. But for the sake of completeness here are a few brief notes.
First of course we need to launch the Terminal application located at /Applications/Utilities/Termimal.app. Once the terminal is running, we need to choose a location for our files downloaded from the remote server.
Let's say we are going to use /Users/yourname/checkouts/. First we need to navigate to Users/yourname/ and create the checkouts directory:
MyMac:~ yourname$ cd /Users/yourname/
MyMac:~ yourname$ mkdir checkouts
You should now be able to navigate to your users folder via the Finder and see the newly created checkouts folder. Now we hop back to the terminal and move into that directory and call SVN for the first time:
MyMac:~ yourname$ cd /checkouts/
MyMac:~ yourname$ svn co svn.theremoteserver.com/wooga
Congratulations, you have just performed your first SVN command. Anytime you interface with SVN via the terminal you begin with svn, then you tell svn what you want to do, in this case we said co and we know from earlier that this means Check Out. So if all went well you should now have a folder inside of checkouts called wooga and inside this folder we have our files, ready and waiting for editing.
You can now edit those files with any app you wish. Once you have saved your changes locally all you need to do is go back to the Terminal and navigate to /Users/username/checkouts/wooga and enter:
MyMac:~ yourname$ svn diff
MyMac:~ yourname$ svn commit
Running diff is not required, but it is a good idea to make sure that you are aware of all the files you have changed. The Terminal window should show you SVN adding (A), updating (U) or deleting (D) files, based on what changes you have made locally.
And that is it for the Terminal. More information can be found at Subversion Forum.
This is, for most of us, the most natural method of interacting with SVN on our Macs. By downloading and installing scplugin from tigris, we can fully integrate SVN into the Finder.
After downloading and installing the plugin, there will now be a new contextual menu when you right-click/control-click in the Finder labeled Subversion. If you open that submenu you will see all the commands you have at your disposal.
To replicate our steps above via the Finder we would simply:
And that is all there is to Checking out via scplugin and the Finder. Next you would open and edit files, and then go back to the Finder to run Diff and Commit which are both found via the Subversion contextual menu.
That is it really. If you install scplugin you will notice that files that you are interacting with will have green checkmarks on them, or blue pluses, or red exclamation points. This is normal. The green checkmark means that you local copy is in sync with the remote copy; the blue plus means the file has been added and is ready for Commit and the red exclamation point means that the local copy and the remote copy are out of sync, most likely due to changes you have made locally.
I am now sitting in the terminal in Detroit waiting for my connecting flight to Lexington. I have been here since 5:30 est and my plane doesn't leave until 9:09 est... suckage. Add to that my body thinks it is actuall 1:55 in the morning (Stuttgart Time) and you can see that I am just having loads of fun. There will be a proper ApacheCon Europe wrap-up post tomorrow, or Tuesday... see you all then.
Well it is the final day of ApacheCon Europe, and I am sitting in the final keynote which is covering the state of patents in Europe.
The convention has been extraordinary. I can't adequately explain how blessed I feel for being able to be with these people, and to hear what they have to say.
So I am sure you are wondering how my talk went, since it was this morning. It didn't go very well. Apparently none of the talks were well attended, the Ruby on Rails talk only had 30 people... that is just scary. I had 8, including 3 other speakers who felt sorry for me, and the chair.
Add to that that without questions from the audience I burned through my material in 35 minutes, leaving 15 minutes for questions, which by and large did not come. Just fun.
Well that is all for now, this talk is very good, and I don't want to miss any of it.
Seems like things are back to normal. The "problem" was kinda strange, and I am not sure how it was possible honestly.
But anywhoo, things should be good again.
I was checking up on Michael this evening and found that he had posted a shot of his DVD collection via Delicious Library. I thought that he had a great idea so here is my partial library.
Today Rich and I took sometime off from the Convention and toured a bit of Stuttgart. The original plan was to hop over to a different country, we were aiming at Poland, and later Switzerland. Unfortunately while within reach (a little over 2 hours by train) the price stopped us. $110 Euros to Zurich is just too much to deal with unfortunately.
You can find photo-documentation of our treck around town over on my Flickr page. Today's weather was... well miraculous, considering yesterday was so horrid. High temperatures and lots of humidity made for a miserable day, contrast that with today which has almost no humidity, cooler temperatures and a wonderful light breeze. Stuttgart is beautiful, and today was the perfect day to see her.
Strangely enough it looks as though I might have found a place that I can help within the Apache Software Foundation. They are just now starting to explore the seedy world of marketing and advertising and that is something I have a bit of expertise in. I hope to be added to the team that is wrestling with this soon.
Well back to the hackathon, the actual conference starts tomorrow and I speak on Friday so things are moving along nicely.
I have learned a couple of very important facts already this week.
Well that is it for now, I need to get back to the hackathon, be sure to check out the Flickr Tag Page for ApacheCon Europe 2005.
Well I am updating this from my Hotel room in the Maritam in Downtown Stuttgart. The flight over the atlantic was uneventful and a joy, if you factor out the normal "Chris decends from 30,000 feet, suffers excrutiating ear pain and is deaf for 3 - 4 hours" that is.
Stuttgart is really a lovely city and I look forwarrd to exploring a bit more once I have had some shut-eye. I am not able to sleep on planes, so I have almost been up for 24 hours straight. Must sleep. Catch you Cats and Kittens later.
I am sitting in a restaurant in the Atlanta International airport, hoping that the waitress actually decides... Oh! she just did. Well I have ordered a cheeseburger and a drink, lets see if it actually gets here before my flight.
The flight from Lexington was... interesting. Everytime they deployed the landing gear it sounded as though we were loosing a part of the plane that we really would rather not lose. Just scary.
We had quite a lot of turbulence along the way, thanks to that "weather" that you can see in my Flickr photostream. I don't actually have internet access here that I can find, so I will have to post this once I either get to my destination, or there is a miracle of biblical proportions and we have WiFi on the plane.
Well I will update again later.
The title says it all I think. I am sitting in the waiting lounge at my gate whiling away the time until my flight arrives.
Some flights that Delta flys internationally carry WiFi, so I am hoping that I will be able to blog from 30k at some point on this trip.
Oh and what is there to do when you are waiting for a flight in Lexington, KY? Why a bourbon bar of course!
I will update this post as I can with my progress. Have a good one, and I can't wait to see everyone in Stuttgart. The one thing I am not happy about is the fact that I am leaving my pregnant wife for this week. Know that I love you Heather, and that I am counting the days until I am home again.
As evidenced by the comments below this is apparently a third party product. What mystifies me is how it came to be on my machine, since I did not download and install it. Who knows. If you are a Safari user who would like this addition hop over to here and download it.
I updated my home machine to 10.4.2 tonight and after launching Safari I noticed something odd:
This morning while catching up on my cadre of blogs I discovered that John Oxton has left our midst.
John is an incredible designer and a hella nice guy, and we will miss his humour, design sensibilities and foul language very much. I hope that you can find the peace and quiet you are seaking, and if there is any place a man can find that, it is in the beauty of the Cottswalds.
Stay well John, and we wait for your return.
Just a quick update for CJD Notepad. You can find full notes on Notepads official home, there is one big addition and two smaller ones.
Everyone give a big round of applause to http://economysizegeek.com/ for contributing the code to get the bookmarklets going. Very much appreciated.
Go on and download it and be amazed!