Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

definitive

macrumors 68020
Original poster
Aug 4, 2008
2,073
942
For those not familiar, version control software basically allows you to save multiple versions of the same file.

Ex of version control software is SubVersion.

So anyone here use such software? Are there benefits to it?
 
I've always wanted to but never got around to modifying my workflow to accommodate. What I do in the interim is append a date to each file I modify, e.g., filename_20100125.psd or if there are multiple revisions in a day, I'll append a letter to the end of the filename, e.g., filename_20100125a.psd.

I also use Bridge to manage my work so I've been slowly getting in the habit of rating files and using the Label feature to know which one to send/I've sent to production.
 
I've tried to work with Version Cue on a couple of different occasions, but never really liked how it changed my workflow.
 
I use SVN for my coding. I have my own SVN server running in an OpenSuse VPN.

There are lots of small 100MB 1 repository 1 user accounts at places like Beanstalk, CVS Dude, etc.

The programming team at my workplace set me up with an SVN server on their network.

I can't remember life before SVN. It's the real deal.

But the question here is about designers.

For coders, most of the files tend to be text based and things like .jpgs and .pdfs.

For designers, the files tend to be .ai, .psd, .fla etc.

SVN is based on the ability to diff text documents, and therefore, save incremental changes.

Example:

someFile (Version 1):

content 1, content 2, content 3, content 4

Now if you make a change to someFile (Version 2), say you delete content 3, SVN does not rewrite all of someFile, it only knows that Version 2 is the same as Version 1, except content 3 was deleted. It just tracks the changes.

The problem with designers is that SVN can't read into .ai, .psd, .fla etc. to track the changes, like with text files, therefore it must rewrite the whole file to the database.

Say you have a 10MB .psd file and make one change to it, and commit it to SVN as a revision, it keeps the original 10MB file and writes a whole second 10MB. Same file, but now 1 change, no matter how small has doubled your storage requirements.

====

I never dabbled with Version Cue, don't know much about other version control for designers, but that's how Subversion works anyhow.

I think SVN would be great, but you may be looking at setting up your own server to get the required amount of storage space.
 
Subversion handles binary files as good as text files

The problem with designers is that SVN can't read into .ai, .psd, .fla etc. to track the changes, like with text files, therefore it must rewrite the whole file to the database.

Say you have a 10MB .psd file and make one change to it, and commit it to SVN as a revision, it keeps the original 10MB file and writes a whole second 10MB. Same file, but now 1 change, no matter how small has doubled your storage requirements.
Why do you think that SVN cannot handle binary files?
Subversion is perfectly capable of handling binary files (such as .PSD, .AI, .FLV) in the same way it handles text files (i.e. it only stores and transmits the difference between 2 version, not the whole files). You can read more about it in the official Subversion FAQ: http://subversion.apache.org/faq.html#binary-files
The quote from the FAQ:
Note that whether or not a file is binary does not affect the amount of repository space used to store changes to that file, nor does it affect the amount of traffic between client and server. For storage and transmission purposes, Subversion uses a diffing method that works equally well on binary and text files; this is completely unrelated to the diffing method used by the 'svn diff' command.
 
Why do you think that SVN cannot handle binary files?
Subversion is perfectly capable of handling binary files (such as .PSD, .AI, .FLV) in the same way it handles text files (i.e. it only stores and transmits the difference between 2 version, not the whole files). You can read more about it in the official Subversion FAQ: http://subversion.apache.org/faq.html#binary-files
The quote from the FAQ:

So are you saying that second, third, forth (and so on) versions or the aforementioned 10mb .psd file wouldn't amount to 20mb, 30mb, 40mb (and so on)?

It will only add the 'difference' which I assume would somehow correlate with the size of the change plus some sort of record saying what changed?

Sorry, I'm not very techy minded...

/Doug
 
Yes, this is the magic of Subversion - only the diff is stored

So are you saying that second, third, forth (and so on) versions or the aforementioned 10mb .psd file wouldn't amount to 20mb, 30mb, 40mb (and so on)?

It will only add the 'difference' which I assume would somehow correlate with the size of the change plus some sort of record saying what changed?

Yes, this is one of the main features of Subversion - on Wikipedia it's mentioned as "Costs proportional to change size, not to data size."
We have confirmed it many times - if you just turn off a layer in a 10MB PSD file, the repository only grows by a few KB.

You may also read this article on the Subversion community website - it highlights the main benefits of Subversion for designers.
 
Brilliant, very useful. Thanks Pixelnova!

By the way... you guys have any plans to make an InDesign version of your wonderful looking Timeline software?

/Doug
 
Why do you think that SVN cannot handle binary files?

I have to plead hearsay. :(

I asked the wonder kid in our Developer Department and that is how he explained it to me.

I will look into it further on my own.

He basically said two things:

1. Binary fines could not be diffed like text files, this rewriting the whole file.
2. That a special XML based format coming in CS5 would allow diff and svn.

He's usually brilliant, but if he's wrong. that would be great.

Maybe they just did not want me storing binary files on their SVN server. :eek:

Thanks for the link and clarification.
 
I'm interested in the same thing. SVN rocks for code, but not for design files.

GridironFlow is a new player that looks promising but it's relatively new. Great reviews though. Kelbytraining.com has some nice video walk through videos.

One vendor told me that some of their design agency clients have started using CatDV after seeing their firm's video department use it for video and photoshop files. To that end the vendor told me that FinalCut server would work too. Either option is way too costly for us as they cost thousands for SAN hardware and client licenses etc.
 
Hmm... this was one of their responses.

Yes binary or not doesn’t matter really, it’s the fact that a small change in FLA results in entire file content being “diffed” and thus occupying more storage.

Is this true?

They keep mentioning .fla files, I'm interested in all working files:

.fla, .psd, .ai, .pdf, ,jpg, etc.

Am I missing what a binary file is? I'm assuming all non text file formats?
 
I find version control much less useful for binary than text files -- a binary diff isn't especially informative, and the entire file gets duped anyway. So I don't use it for Photoshop and Illustrator mockups or Flash source files (might as well just save under a new name). But I do keep all the HTML and CSS developed based on those files under version control (along with the associated image files of course, so the whole thing can be checked out as a single package).

The only reason I might consider using version control for design files would be managing those files from multiple machines/remotely or among a team -- in which case being able to check out and check in might ease the headache of file syncing.
 
This is not true

Hmm... this was one of their responses.

Yes binary or not doesn’t matter really, it’s the fact that a small change in FLA results in entire file content being “diffed” and thus occupying more storage.

Is this true?

They keep mentioning .fla files, I'm interested in all working files:

.fla, .psd, .ai, .pdf, ,jpg, etc.

Am I missing what a binary file is? I'm assuming all non text file formats?

I don't think they are right.

I just did a small experiment with a small .FLA file (533KB).

I created a local SVN repo and measured it's size - initially it was 31KB.

I then added my FLA file into it - the repository grew to 365KB.

I then made some small modifications to a couple of object in the .FLA, and comitted another version. The repository grew to 377KB (i.e. by 12KB). Then I made some more changes and comitted the third version - the repository grew to 378KB (i.e. just by 1 KB).

So it's clear that SVN does not duplicate the whole file every time - in this case we would have seen the repository grow by approx. 300 KB every time, which obviously didn't happen.

We saw the same with .PSD and other binary files - SVN clearly only stores a small diff, not the whole new version.

I'm sure you can try this experiment with your own typical files to convince your developers to allow you to use their SVN server:)
 
I find version control much less useful for binary than text files -- a binary diff isn't especially informative, and the entire file gets duped anyway. So I don't use it for Photoshop and Illustrator mockups or Flash source files (might as well just save under a new name). But I do keep all the HTML and CSS developed based on those files under version control (along with the associated image files of course, so the whole thing can be checked out as a single package).

The only reason I might consider using version control for design files would be managing those files from multiple machines/remotely or among a team -- in which case being able to check out and check in might ease the headache of file syncing.

Once again, it's not true that the entire file gets duped - see the previous post.

Regarding binary diff - take a look at our products. Timeline - the SVN plug-in for Photoshop (http://pixelnovel.com/timeline) displays previews of your older versions directly in Photoshop:
workflow.png

so you have a visual representation of the older versions.

We also have a free diff tool for PSD files - ComparePSD (http://pixelnovel.com/comparepsd) that allows you to diff PSD files layer-by-layer.
cp_screen1.gif

However it's not integrated into Timeline yet, and it currently only works on Windows
 
Brilliant, very useful. Thanks Pixelnova!

By the way... you guys have any plans to make an InDesign version of your wonderful looking Timeline software?

/Doug

Yes, we are going to release plug-ins for InDesign and Illustrator soon.
 
I'm sure you can try this experiment with your own typical files to convince your developers to allow you to use their SVN server:)

I have my own subversion/svn server at home running on OpenSuse, but I'm stupid busy for 2 more weeks. I will def conduct a similar experiment first chance I get.

Thanks again.
 
To avoid chaos of projects, a version control system must have these:
1. Backup and Restore - wherein you can jump to any moment in time.
2. Short-term undo - go back directly to what was the "previously good" data.
3. Long-term undo - jump back to any moment in time (even a year) if there are bugs and want to see which was changed.
4. Track Changes - check to see which and what was changed.

These are just general features a good VCS should have. There are a lot of VCS out there having these features but it's confusing as to which should be the right choice. You can check a detailed comparison of version control software packages in this blog. This might help you choose the right software considering what your standards for it.
 
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.