Control Your Subversion: Tips for Setting up Subversion on the Mac

July 4, 2006

subversion_logo_hor-468x64.pngThis is just a little post to help me remember how I got this stuff working.

Subversion is a revision control system that is being developed to replace older similar systems. Revision control lets you update your projects in an iterative fashion and allows you to keep track of these changes. This is perfect for when you have a bunch of people working on the same thing and want an easy way that everyone can work on the same stuff without stepping on other peoples toes.

I have used version control systems on a Java application we developed as a team last semester, and I plan on using it soon to develop web applications, but it really could be used for almost anything: a big proposal, documents for a conference, anything that you might work on in a step-wise fashion.

Plus, it doesn’t have to be a group project to use Subversion. You can use it as an easy backup system so you can work on your stuff from any machine and use it in case you want to revert to an earlier version of something.

They have a free book about how to use / setup Subversion, and there is a lot of info out there on how to use it.

Client

If you have the server set up, using a client to check-in and check-out projects is easy. For Windows there is a client called tortoisesvn that comes highly recommended. I guess it integrates with Windows Explorer to make things easy. For Mac you can use a precompiled command-line version (this one is the most popular and put out by Martin Ott of SubEthaEdit fame) or search for a GUI version. My favorite so far has been ZigVersion. SvnX is also recommended, but froze up when trying to connect to my server (probably because I was initially typing the location wrong).

Server

This is the tricky part. The easiest way to install it on a Mac that I’ve found is using Darwinports and this tutorial. I followed it excatly without any issues. Darwinports is so handy, everyone should have it installed by now. Then I used this section of the book to add basic authentication to my Subversion repository.

New Repository
Now to add a new repository I simply use:

sudo mkdir reposName

sudo svnadmin create –fs-type fsfs reposName

make template and import

cd ~

mkdir svn-template

cd svn-template

mkdir trunk branches tags

Import your template directory into the “reposName” repository using

svn import .http://localhost/svnrepo/reposName -m “Initial import.”

And you should be ready to go. Here’s a list of commands from the book commonly used in messing with the repository:

 

  • Update your working copy

     

    • svn update
  • Make changes

     

    • svn add
    • svn delete
    • svn copy
    • svn move
  • Examine your changes

     

    • svn status
    • svn diff
    • svn revert
  • Merge others’ changes into your working copy

     

    • svn update
    • svn resolved
  • Commit your changes

     

    • svn commit

So that brings together most of what you would need to set up a Subversion server on a Mac, and mess with it. Hope this can help somebody

Advertisements

ibackup (Finally)

May 13, 2006

Picture 1.pngSo I finally brought automated backups to the household. It took awhile because I am lazy, and because most current backup systems I’ve seen didn’t seem quite right for our setup.

I wanted to be able to backup critical data (i.e. school papers, homework, etc) on our 3 Macs to a Ubuntu server in my office, upstairs. I like using a Linux-based server for this kind of stuff because of the reliability of the operating system, and the relatively cheap cost of the hardware. I have been using this particular system for a few months now to develop our RTS game, and actually got the entire machine for a total of 0 dollars.

What makes our set-up a little unique is that both of our primary computers are laptops. So a scheduled sort of backup wouldn’t work as the machines aren’t always on at one particular point. Also, my wife is more techy than most, but still wouldn’t be comfortable opening up the Terminal to run shell scripts.The backup system I came up with uses Rsync to transfer files and is setup so that we only have to double-click on an icon and the backup starts up.

I used this great tutorial to set it up so that my machines could connect to the Linux server using SSH without needing a password. Then I used this tutorial (by the same person) to formulate a shell script that will automatically backup our Documents folder and our Desktop folder. Here is basically the entire script I used:

#!/bin/sh
rsync -e “ssh” -rca –delete-after ~/Documents/ jim@192.168.1.9:/back/ibook -v
rsync -e “ssh” -rca –delete-after ~/Desktop/ jim@192.168.1.9:/back/ibook/DESKTOP -v

Then I found a great program called Platypus 3.3. This lets you make applications out of scripts. So I loaded my script into Platypus and out came a fully function program to put on each machine. (I modified the script slightly for each system so that they are backed-up into different folders inside of “back”)

Now I know this isn’t a perfect solution as we will still have to find the time to run the backup program (it takes around 5 minutes to work its magic), but its certainly better than no backup at all. I might create a separate script to backup other folders like images and bookmarks and what not. Also for redundancy, I think I’m going to have the Linux server backup the backup folder to another folder on another physical drive. And since the server WILL be always on, this can be handled by cron easily.

This system seems like it will work well for what we need. Once I tweak the script a bit to include a few other critical files, I won’t have to worry too much about our aging laptop hard drives failing any time soon.


Blender my new Buddy

February 10, 2006

I recently acquired a 1.5 Ghz Pentium 4 from the donation pile at work.  This is now my second fastest desktop, and so I wanted to do something useful with it.  I decided to set it up with the latest version of Ubuntu and use it to power the colaboration efforts of our JAVA development.

Ubuntu is really a nice distro, and I can see why it’s becoming so popular.  Once you get a feel for where everything is, you can easiliy get it to do what you want, fast.  There isn’t a lot of the grunt work that a lot of other UNIX based systems make you do.

Anyways, one program I installed on this machine that has been taking a very large chunck of my time recently is a 3d modelling aplication called ‘Blender‘.

I was worried about how we were going to get images for our isometric  game, so I thought if we could make a 3D model of our units, then we could get all the still images we want.

This is probably a bit overkill, but it gives us a lot of flexibility.  And with Blender, even though I’m no artist, I’ve found I can make at least decent looking models which we can use.

The theme we’ve kind of decided on is one dealing with navel battles, specifically, pirates!  So here is a pirate ship.  This is actually the 1st one I made .  We now have a set of 3 pirate ships which I think we can do something with.  And my group members seem to agree.

If you have any inkling to do 3D modelling, check out Blender.  While it is a bit confusing to learn (the video tutorials really helped me) once you get the hang of it, it becomes intuitive.  And it’s really fun.

If any one wants to try their hand at a pirate ship, I’d be more than happy to include it with the rest of the group. wink.


My own Network Topology

December 4, 2005

Instead of studying for finals, I decided to create a little diagram of my network at home. I used the trial version of OmniGraffle Pro, with some free downloadable stencils to make a pretty accurate mapping of what we have here.

OmniGraffle is actually a pretty nice program, and with a little work, you could do a lot with it.
But I don’t think I’ll ever use it enough to justify the $129 price tag. That’s a bit much, in my opinion, I’ll just stick to the trial version.

In the diagram, the little black boxes represent WRT54g routers, and the little white box is a little Linksys switch I have. Everything on the top line is in my office upstairs. The hardware on the lower level is downstairs (well the iBook can go anywhere).

If you wanted to, you could create much better maps then this one, but in about 30 min. this is what I came up with.

So what does your Network look like?

(FYI I had to use the capture-screen-image feature of my Mac to get a version of this in an image format, as the export feature dosen’t seem to work for the demo. Plus you can only add 20 objects, so I couldn’t fit my printer on there.)


RSS is the future Today!

April 25, 2005

Perhaps not entirely, but its a good start. RSS stands for “Really Simple Syndication” (at least it does now) and is a great way to read sites that update often. Using a RSS aggregator such as NetNewsWire Lite, one can compile dozens of sites into one common interface which allows you to read new information really fast, and get a lot of new information at one time.

Say you’ve got a bunch of blogs you read everyday, plus you’ve got to get your news fix from yahoo or google news or whatever. Why go to each individual site when you can get all that reading done in one swoop?? Plus with all the free time you save, you can subscribe to more blogs and more news and stuff your head even more in the same amount of time!

Set up NetNewsWire Lite:
First download and install it to you applications folder. Then Drag it to your dock. Start it up, and you’ll have a bunch of feeds that you probably aren’t too interested in, but thats ok, because they show you how it works. Click on the NetNewsWire Lite drop down menu and click on “Preferences” Click on the “Browsing” tab and check the “Open links in background” option. Click the “Downloading” tab and change the Refresh rate to “Every 30 Minutes” Close out of the Preferences window

The hardest part of setting up the aggregator is actually finding the feeds to the sites you want. There’s got to be an easy way, I just don’t know it. For xanga sites, you can use the afore mentioned rss helper since xanga can’t do it on there own. Just type the username into the box and it will find the URL for the feed. Copy the URL and go back to NetNewsWire Lite. Click on the “Subscribe” button at the top and the link should appear. Hit ok, and you’ve got some feeds to read! For news sites, you can usually find a link somewhere on the page. Like at news.yahoo.com there’s a section on the left call “News via RSS” . Click on the yellow box, copy the URL and subscribe to it in the RSS aggregator of your choice.

You can delete the feeds you don’t like by selecting them and hitting the “delete” key. You can even group your feeds into different folders by clicking “File” and then “New Group”. Then drag similar feeds to that folder. Pretty nice.

What’s cool is that you can let your unread feeds build up and then read them all at once. As long as NetNewsWire Lite is running it will check every 30 minutes for new feeds, and it keeps a running total on the dock icon, which is very cool.

Shortcut keys:
hitting the spacebar will move through each new feed entry. It will also page-down for longer blog entries. This is the easiest way I’ve found to navigate through your feeds. Command + k will mark all in the particular fee as “read”. Sometimes necessary because the technology isn’t perfect.


Macs do it Better

April 24, 2005

Ok, so I really like the Mac. The GUI is clean and very functional, the Unix underneath is powerful and secure, and the hardware developed by Apple is top notch and can’t be touched.

So here’s a list of my most beloved applications that make my Mac experience all the more enjoyable. Hopefully I will be elaborating on each of these programs in some detail later on.

Adium X — Nice Instant Messenger Client. Very configurable, clean, and cool. 2.0 will be even cooler. Talk on aol and msn and yahoo with one program? I don’t believe it!

NetNewsWire Lite — RSS feed client. Read all of your wicked cool xanga blogs at one time. Lite version is free, and has all the features I could ever want.

SubEthaEdit — Allows multiple people to edit a single text document from different computers in different locations, in real time! This would be awesome at a business with a bunch of macs on the network. Also is just a really functional text editor in general, especially for working with html / ruby / perl / etc.

QuickSilver — This is a great way to get around your mac with no mouse needed. I use it to open up programs really quickly, but you could also use it to… browse your iTunes library, open bookmarks, search google / IMDB / any other searchable site, etc etc . If you start using it, you won’t stop.

Firefox — Not mac specific, but the best browser hands down. Safari is nice for some things, but Firefox is just better. Plus open source is always a good thing. So are lots and lots of actually useful plugins.
(And if you are using Internet Explorer on the Mac, don’t tell anyone because they will make fun of you. And so will I. )

GmailStatus — If you are still using crap hotmail or crap yahoo stop. Find someone, and get yourself a gmail account. Set it up and import your contacts, and never touch hotmail / yahoo again. Really, gmail is that much better. I’ll ‘blog’ about that later. Then get yourself the GmailStatus program. This is a simple app that will gracefully notify you of new messages. I believe there are other programs that do this that might be newer, but I like the way this one looks, so I’ll stick with it for now.

Sidenote — Just started using this, but I think it might be really useful. Creates a little note taking box that will hide when you don’t need it. But you can create multiple notes within one window, save them, edit them, send them to other programs. Really, think this could be something special. I’ll try it out some more and check back…

Voodoo Pad — Not Freeware like the above ones, but still an interesting program. It allows you to make a personal wiki on your computer as a way to organize ideas and link them to other ideas. It’s pretty useful, I should use it more often since I paid for it. But they do have a fully functional free version that limits the number of pages you can create.

Toast — Certainly not free, but still the best CD / DVD burning program that I’ve found / tried for the mac.

I also use the built in programs like iTunes, iPhoto, etc. But enough people talk about them, I shouldn’t have to. But I might later.