43 Folders

Back to Work

Merlin’s weekly podcast with Dan Benjamin. We talk about creativity, independence, and making things you love.

Join us via RSS, iTunes, or at 5by5.tv.

”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

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.

Chrome47's picture

Use a boilerplate folder setup and consistent, meaningful names

The past few years as a graphic designer in an all-Mac environment have taught me a few tricks for digital asset management. You'll find variations of this setup among various agencies and firms. I have a folder for Active Projects, and finished projects go in an "Archives" folder, where they wait to be burned to DVD. Each project folder has the project number at the beginning, with a descriptive name. Everybody has a different naming system. Some places use just numbers, and some combine letters with numbers. At my firm, we combine 2-3 letters that identify the client with a 4-digit job number. Each client starts at 1000. So if I were doing a project for you, Jamie, it would probably be JP-1000.

Each project folder has 6 folders in it: copy, final, images, proofs, support, and working. Copy contains text supplied by the client or written by our copywriter. Final contains the final collected files or press-ready PDFs, and I try to avoid placing this folder there until the end so as to avoid confusion. Images contains all flattened image files used in the layouts. Proofs contain all the proofs we send to our clients. Support is a little bit slippery: it's not quite copy, not necessarily image resources, but could be research material, inspiration, or some such other material that helps us arrive at the final product. The Working folder contains the layered Photoshop files and working layout documents. A Flash developer could keep .fla files here, and put .swf files in the Final folder.

Now that that's out of the way, here's how we manage versions/revisions. Normally, when things are comped (comprehensive layouts that are still open to revisions) we do 1 to 3 different layouts. These can be in one InDesign file in the working folder, with each layout on a different page. Or they can be named compA.psd, compB.psd, compC.psd, and so forth. We send clients proof PDFs. When we do a new revision to send to the clients, we append "_rx.pdf" to the file, where x equals the revision number.

So if we were doing a brochure for the Jamie Phelps company, it would have a project name like JP-1001-brochure. The layout would probably be named JP-1001-brochure.indd, and you'd get a proof named JP-1001-brochure.pdf. Let's say you want to modify some things, so we do that and send you a first revision. The first revision would be named JP-1001-brochure_r1.pdf. Ideally, it would get done in under 3 revisions.

Final files have "_f" appended to the name before the file extension. This is something of a holdover from the old Flightcheck software we used to use for preflighting Quark layouts, but it's a useful naming device to indicate that a project is finished and that this file is ready to go to press. Your final brochure would be in a folder named JP-1001-brochure_f or as a PDF named JP-1001-brochure_f.pdf inside the "final" folder, depending on how the printer prefers uploaded files, which we normally send via FTP.

I know it's a little different for web design and probably very different for programming, but I hope this helps. I think a consistent folder structure and naming system is key.

 
EXPLORE 43Folders THE GOOD STUFF

Popular
Today

Popular
Classics

An Oblique Strategy:
Honor thy error as a hidden intention


STAY IN THE LOOP:

Subscribe with Google Reader

Subscribe on Netvibes

Add to Technorati Favorites

Subscribe on Pageflakes

Add RSS feed

The Podcast Feed

Cranking

Merlin used to crank. He’s not cranking any more.

This is an essay about family, priorities, and Shakey’s Pizza, and it’s probably the best thing he’s written. »

Scared Shitless

Merlin’s scared. You’re scared. Everybody is scared.

This is the video of Merlin’s keynote at Webstock 2011. The one where he cried. You should watch it. »