Tag Archives: SVN

So I Finally Figured Out Why Everyone Likes Git Repositories so Much…

Until recently, I didn’t really use version control software all that much. I primarily used SVN for a few WordPress plugins, as WordPress maintains a free repository on their SVN server for each plugin a developer submits. While I found it interesting, I didn’t really see the need to use version control for other projects…especially since that would require setting up a server or paying for someone else to host it.

After seeing the six thousandth post/comment/tweet raving about Git, another version control system, I decided to finally give it a closer look. The lightbulb finally clicked on. I now know what’s so special about Git.

Git, unlike, SVN is distributed. You can version your code entirely on your computer, only pushing to a server when you’re ready…if you’re using a remote server at all. When you commit changes, it’s still just updating the revision records on your local computer; you have to use a separate command to push the changes to the remote repository. This means if you’re working alone, without other contributors, you can version files without needing a special server hosting your code, although you lose the convenient off-site backup. This is great for small projects.

Then you have the Github service, with it’s magical socially-networked code repositories. Suppose you have an improvement upon an open source project hosted on Github. You just click a button to “fork” it, creating a new repository under your account with a copy of the original’s contents. You then pull the files down to create a working copy on your system, make your changes, and push them back to your Github repository. If the developers maintaining they original project like your changes, they can merge the changes in your repository back into the main one. That concept amazes me.

I think I’m starting to see why people rave about Git so much. I’ve been aware of it for awhile now, but the concepts didn’t quite “click” until recently.

Version Control With Dropbox

I’ve mentioned Dropbox before here, but I didn’t mention this neat trick you could do with it…

Anyone in the programming industry will recommend that you use version control software like SVN or Git to save yourself headaches when you make a mistake and need to roll back a file to a previous state. What if you used Dropbox for that? You get 2GB free, and files sync automatically without you having to do anything.

Dropbox has file versioning built in, actually. When you edit or delete files, Dropbox keeps prior versions in case you wish to restore them. With a couple of clicks you can overwrite the current version with an old.

Dropbox revisions

While that’s great for basic applications, you could take things a step further and store a SVN repository in your Dropbox (with a local SVN server powering it). It would work fine for a single user, but it wouldn’t work well with more than one committer.

Subversion Picked Up by the Apache Software Foundation

The popular version control software Subversion (or SVN) is moving to the Apache Software Foundation.

While Subversion is undergoing incubation at the ASF, CollabNet will continue to host the project at http://subversion.tigris.org. In addition, third party-certified binaries of the software configuration management system will continue to be available from CollabNet, as well as from other vendors, both during and after the incubation period.

This was brought to my attention by @ArtemR on Twitter. It’s interesting, and certainly important to the project. I think that it can only make things more efficient though. I highly doubt that the ASF is going to cause the sky to fall, or whatever it is everyone’s afraid of.

Version Control with Git

There’s an interesting tutorial up on Net.Tuts+ that caught my attention: Easy Version Control with Git.

Git seems like a powerful tool, and one I’d definitely like to look into in the future. It seems like it can do a bit more than SVN, as WhyGitIsBetterThanX.com happily points out, and may even be easier once you get used to it.

Git is a open-source code managemen tool; it was created by Linus Torvalds when he was building the Linux kernel. Because of those roots, it needed to be really fast; that it is, and easy to get the hang of as well. Git allows you to work on your code with the peace of mind that everything you do is reversible. It makes it easy to experiment with new ideas in a project and not worry about breaking anything.

Version control systems are great for anybody doing serious coding work, or design even. You could keep your blog’s theme in a repository, for example, so when you make changes to it you can roll them back if things break or you just want to revert back. You would be able to store the files remotely on a Git server, work on them locally (in your WAMP/MAMP server), and when you want to make you changes live you could just checkout the files to your production server.