Central Fluid design repository proposal (+ "what's svn?" for designers)

James William Yoon james.yoon at utoronto.ca
Tue Oct 6 16:06:14 UTC 2009

Hey all,

As alluded to at the last design meeting, as well as Vicki's email
about workflow and file sharing, we're going to be setting up a design
repository. After considering the wiki, ftp, Dropbox, and others, the
candidate that I'm endorsing is subversion (svn). While svn's most
effective when used for version tracking code bases (read: text), I
think it's still very useful for design files (read: binary). I'll
give a quick intro to how svn works, and how it'd benefit us.

Here's a scenario of how it might work (svn vernacular in quotes):

Over in Vancouver, Leah and Vicki log into the team svn repository,
and, for the first time, do a "checkout" of the design space, meaning
they copy the team's design files over to their respective local
computers. Tona, in Spain, does the same thing. Leah spends a few
hours making some changes to the kiosk wireframe files, and, feeling
like she's done with that file for the afternoon, "commits" her
changes to the repository (i.e., brings the repository's file up to
date with her version), with a note summarizing the changes she made.
Not long after, Vicki decides to work on the same files, but notices
that the files have been changed, so she clicks "update" to bring her
local copy up to date. Vicki reads the comment Leah left to get an
idea of what changes were made, and continues working on the design.
As she finishes, she notices her svn client notifying her that the
repository no longer has the most up to date files, so she does a
"commit" to the repository, bringing the repository back into sync.

Later, when Tona opens her svn client, she notices that her local copy
is out of date, specifically, the kiosk wireframe files. Tona clicks
"update" on her client, bringing her local copy up to date. Tona,
curious to see how the designs have been evolving, clicks on "history"
and reads the comments over the lifetime of the file, and gets a
feeling for where the design has been and is headed.

Benefits of svn & version tracking for us:
- Key benefit: notifies you when there's a newer version of any file
in the repository, or when you need to update the repository (i.e.,
when the repository's version is out of date)--this makes it really
easy to know when people are making changes to files, and for everyone
to keep all files up to date with each other, much more so than ftp or
the wiki (which require more due diligence to keep sync'd). Also, most
svn clients allow syncing all out of date files with one click (as
opposed to managing individual files that have been changed, as in ftp
or wiki).
- We can see the history of files, how often changes were made (i.e.,
most active, least active files), who made changes, and what the
changes were (if the committer made a note)
- It's non-destructive--we can revert back to a previous version if necessary
- Read-only access to the design files can be made public (i.e.,
anyone can checkout the design files), reserving commit access to the
files to designers--moreover, they can access the files without even
having an svn client by simply browsing to

A few caveats:
- Some of svn's more significant features are lost on binary
files--e.g., being able to run a diff (difference) between two
revisions to localize where changes were made
- svn doesn't deal with non-flat files (i.e., folders pretending to be
files) elegantly--OmniGraffle files by default are non-flat, but
fortunately we can force them to be flat

By default, svn is used through command line, but a really good svn
client for OS X that I use is Versions (http://versionsapp.com). It's
not only super sleek and sexy, it also makes using svn really easy and
quite the pleasure to use. I can give a quick primer to how it works
in the design meeting today if people are interested.


Additional 'svn for designers' reading:
(+ parts 2, 3, 4, and 5)

More information about the fluid-work mailing list