Merlin’s weekly podcast with Dan Benjamin. We talk about creativity, independence, and making things you love.
Merlin’s weekly podcast with Dan Benjamin. We talk about creativity, independence, and making things you love.
”What’s 43 Folders?”
43Folders.com is Merlin Mann’s website about finding the time and attention to do your best creative work.
Getting into Version Control
Jamie Phelps | Jan 4 2008
Short Version:I think it's high time I got my act together and started using version control for my web design and programming work. Two questions I'd like you to answer: How do you/should I go about making version control part of my working process? and What is a good version control system for my needs? (I have been overwhelmed by all the strangeties of SVN in the past.) The first question is the most important for me as I can pretty much adjust to most anything. Longer version after the jump... Long Version:Here's the thing. Many of you know that I'm a web designer. What I'm here to admit today is that heretofore I have not been using a version control system. I have some new projects about to start up as well as some pretty ambitious programming projects that I'll be working on over the next semester and in my last year of school working on a big group project. So, I thought now would be a great time to get my act together with version control. My work obviously requires that I do a fair amount with binary files such as images and occasionally sound. So, any version control system would need to handle that stuff gracefully. I'd also like for whatever system to integrate in some capacity with Finder. I'm not averse to the command line, but switching to Terminal to do version control operations is one more step that I fear might keep me from actually using it. I have my hosting account with Dreamhost, which offers ootb SVN repositories, so that might be the simplest solution. Also, and help with workflow issues such as dealing with multiple projects (multiple repositories or one repository with multiple projects?) is greatly appreciated. As a way of sort of getting into my head with this stuff, it might help if I describe my modus operandi for a project. All of my project folders get treated like a "document" and shoved into my catch-all "~/Documents/trunk" folder and organized by color label. (See also my blog post about organizing my files. Most of my web design projects consist of a simple top level directory with three sub directories for images, javascript, and stylesheets. In the past, if I was going to get experimental with a particular aspect, I'd just make a _bak copy of the file in question and go to work. Not too sophisticated. My programming projects go into ~/Code/$languagename/$projectname, so for my class programming assignments, ~/Code/Java/ProjectName. Again, nothing to earth-shattering. But I did want to show that I do keep my projects separated more than just by project. Maybe I should be keeping my web design projects in ~/Sites. Ach, but I digress... Finally, I think I have been overwhelmed by the alien concepts in SVN. Branches? Tags? Trunk? WTF? So, perhaps a simpler system is in order. I know Git, Mercurial, and Bazaar are the cool new kids, but is there something else out there that I'm not considering? Thanks in advance as always for your help, 43F Hive Mind. 53 Comments
POSTED IN:
mercurial and distributed version controlSubmitted by davermont on January 5, 2008 - 10:41am.
I've been using Mercurial for the better part of a year now to keep track of changes on a number of web sites I'm working on. Mercurial was pretty easy to wrap my head around, and so much simpler to set up and understand than Subversion. It's easy to push my local changes onto the live site (and vice versa). It's easy to revert an entire project, or just specific files in the project. It's saved my ass a few times when I've accidentally deleted entire files or was a little too aggressive when reorganizing. Keep in mind that whatever version control software you use also needs to be installed at your web host, which may limit your choices of software (or perhaps consider moving to a new host). I'd also highly recommend Trac, which puts a nice browser-based interface on your Mercurial or Subversion repositories. It lets you view any file at any point in time, and review changes by viewing each source file side by side with its previous version, and it does this for any given revision. Trac also keeps track of milestones and has a useful wiki for notes and documentation on each project. Good luck in your quest! » POSTED IN:
|
|
EXPLORE 43Folders | THE GOOD STUFF |