Version control: A primer

The Report from the DAM Foundation Universal Truth & Standards Commission from the DAM Foundation noted that a DAM solution must have version control, actual version control, and not just some method of keeping multiple copies of something.  But what exactly is version control, and why is it important to DAM and metadata librarians?

Well, first, the when-in-doubt article.  Revision control got its start in software development.  Software projects, even small ones, use a large number of files of multiple types and have many people working on them at once.  But let’s look at a much smaller, more immediate example.  Suppose you, a sales VP, have a presentation on Friday for your new product.  There’s a folder on the network with an image file, macguffin.jpg, holding a plain photograph of your product.  On Tuesday night, you make a copy of the file onto your thumb drive, take it home, and spend a couple of hours using photo editing to show the product sitting on a lovely granite counter top.  Wednesday morning, you bring the drive back and drop the image in, replacing the original.  On Thursday morning, you start making your presentation and drop the image in.  It’s not the image from yesterday; you know, because you didn’t use Blingee to make your image.  While you’re trying to figure out how you’ll explain the extra glitter to your client, your boss comes in and asks, “What’s up with macguffin.jpg?”

You reply, “I know!  I spent all of that time photoshopping it into a kitchen, and someone overwrote it.  We’ll need to see if there’s a backup of the network drive.”

He scowls, “Kitchen?  We need the plain photo for the patent applications!  Get the Monday backup first, then worry about your version.”

Version control software keeps track of changes to items.  It keeps them in a centralized location, from which you can check out items to work on using your local machine.  You can decide whether to check something out in such a way as to lock others out or not (usually not. Version control is great when many people need to work on something for a period of time).  You can refresh your local copy from the central location if you need to.  When it’s time to check back in, the central location lets you know if the version you checked out is no longer the same version that’s there now!  If there’s no conflict, the system lets you check in your new version, adding comments about what you changed, and keeping track of the changes made and who made it.

Thus, in your example, version control would have told you who made the Thursday version, it would have warned them that you had done work when they checked their version in (so they can’t say they didn’t know), and, most importantly, it has a simple command not only to change the file back to your version, but to any version (like the one your boss wants).  Complex version control would even let you create a “branch” version from the original “trunk”.  That way, the system would know that the two are related, and they can still be edited and versioned separately (or possibly merged someday).  So your boss can be happy, and you’d have your “presentation branch” ready for tomorrow’s presentation.

CEO got his image in the presentation, in the end.
CEO got his image in the presentation, in the end.
Version control: A primer

One thought on “Version control: A primer

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s