Using git to keep track of digital assets

The problem

Nearly all of my clients are non-profits, which means at some point they need to dump a bunch of sponsorship logos on their site. Pulling teeth is a good way to describe trying to get a vector file out of most companies. I don’t know why most companies don’t have press packs containing source files for their logos, especially if they are into sponsoring orgs.

On top of just getting the files, we (my graphics people and I) then have to keep track of the files, because normally there isn’t anyone at the org that is proficient or committed to doing so. Multiply by a few clients, and it soon becomes a pain in the ass. If one of our machines die, chances are we will have to go through the entire process again, except a year later. And don’t get me started on JPEGs we have to vectorize ourselves!

Solutions

Needless to say, I’ve been looking for a better way. I’ve looked into asset managers, hoping to find an easy to use web interface for folks to upload and categorize their files. Ha!

And then there is the old school idea of just keeping an SFTP account somewhere, and let them go nuts. I can always search for files later, ne? Well, even that is a bit too technical.

Finally, it hit me. My needs are distinctly different from my clients. I need access to source vectors files, and they need me to create bitmap files for them. They don’t actually care about what I need, so I have some leeway in using a system that I find easy and efficient.

Enter git

My solution is to keep a git repository of the graphics. It keeps all the metadata that I find relevant (how old is this file?), as well as giving me handy tools to check why we created a given image. Sweet!

My structure is in three directories: bitmap, source and svg.

  • bitmap - This is where the graphics for use live. I use a particular naming scheme (ex. logo-interi200x100.png), which makes reuse really easy.
  • source - Original files we received from the sponsor/whoever.
  • svg - These are the vectors that I create to generate the bitmap files. I normally have to do some resizing, or perhaps change the color of a logo. Also, sometimes we have to create vectors from a bitmap, because some companies enough money to employ incompetent people.

When I work with another person, this is invaluable, because they can work on their local copy and merge with the master, and we have a log of all our work. So when we revisit some gala event or series of motivational posters, we can see where we were, and immediately get to work. And most git web interfaces package the repo, which makes a great present for the client: send them a link to the zip file and move on to more interesting projects.

As I incorporate git into my work and play, I keep finding new uses for it. :slight_smile: