views:

146

answers:

5

I know that a VCS is absolutely critical for a developer to increase productivity and protect the code, no doubts about it. But what about a designer, using say, Photoshop (though it's not specific to any tools, just to make my point clearer).

VCSs uses delta compression to store different versions of files. This works very well for code, but for images, that's a problem. Raster image files are binary formats, though vector image files are text (SVG comes to my mind) and pose to problem. The problem comes with .psd files (and any other image "source" file) - those can get pretty big and since I'm not familiar with the format, I'll consider them as binary files. How would a VCS work in this condition?

The repository could be pretty darned big if the VCS server isn't able to diff the files efficiently (or worse, not at all) and over time this can become a really big pain when someone needs to check out the repository (or clone it if using a DVCS).

Have any of you used a VCS for this purpose? How well does it work? I'm mostly interested in Mercurial, though this is a general situation that applies to any VCS.

+2  A: 

Yes

Don't worry about the size, if you run out of space, just buy a larger hard drive.

Losing information will be far costlier.

In addition to a VCS (any will do, as you won't be needing delta storage), do regular backups.

When doing checkout you shouldn't be standing on the root of the system, but rather on a specific branch to your project, that way it won't be slower than any simple copy operation of that folder.

voyager
The central server hosting the VCS and other things will also act a backups server. It will have two beefy HDDs (probably in RAID 1) to keep daily backups. The size can get big FAST, especially with .psd, so I am kinda worrying a little.
iconiK
I'm just imagining the train wreck that would ensue when trying to `svn merge` two psd files. The merge command usually inserts `<<<<<<` and `>>>>>>` characters wherever it thinks there's a conflict.
Will
Binary mode anyone.
Dykam
SVN won't try to merge, as it will treat them as application/octet-stream by default (setting a different MIME type on the file in SVN when the type is incorrect would be masochism).
iconiK
That's right. You cannot merge such binary files. It doesnt even make sense.
Kilhoffer
@iconiK, keep in mind that backups you can rely on must be on different physical locations and regularly checked to make sure that you can restore them. Just copying them from one partition to another in the same computer doesn't count as a backup (even though some of us do sometimes exactly that and nothing more).
voyager
+5  A: 

Designers usually use specialized tools like AlienBrain, Adobe VersionCue or similar, which are essentically Version Control Systems that understand Images and other Media Assets, which allows stuff like diffing two images.

Designers IMHO should definitely use VCS systems, at least as a means for Versioning and backup - their stuff is just as important as Specs, Documentation, Code, Deploy Scripts and everything else that makes a project.

I do not know if there are bridges between "Asset Management Systems" like the mentioned ones and Developer VCS' systems though.

Michael Stum
Never heard of those, I'll look at them. Thank you!
iconiK
I would actually like to see some of the features of asset management systems added to developer version control systems.
Omnifarious
A: 

I believe so. Especially if you wish to track changes over time or need to rollback to previous versions. Centralized source control may be the way to go if you're worried about the size.

Kilhoffer
Centralized or distributed is not relevant (there will likely be a central repository in distributed systems anyway). Each computer will be backed up daily on the central server.
iconiK
It is relevant. True, a central server would be, but distributed source control systems do not force branches on distributed machines to commit or merge back into the central server. Thanks for the downvote, but you're wrong.
Kilhoffer
@iconiK: you ARE wrong about that. you've obviously never lost work in an uncommitted branch in a distributed source control system.
@Kilhoffer, I did not downvote you, somebody else must have. I agree that not pushing the branches to the central server can cause a mess.
iconiK
+3  A: 

Version Control Systems are useful for ANYONE that is doing work that they might need an older version of at some later date. That said, I have set up all my creative friends with Subversion (in the past) and now I recommend Git. Even those that are doing Video editing with hundreds of gigs of video. They can archive off the projects when they get final payment. Drive space is CHEAP, cheaper than ever before, size isn't an issue in any modern VCS. Being able to revert back to a previous working state or experiment with something without losing data and manually managing multiple "temp" directories is invaluable if you bill by the hour.

fuzzy lollipop
+1  A: 

Definitely recommend using Version Control for any type of file you care about, or can't afford to loose. Disk space is cheap, and as has already been pointed out it'd be far worse to loose a bunch of important files than to spend a few extra bucks on a new HDD. I recommend Subversion since it has file locking, an important feature when working with binary files and version control to prevent ugly or impossible merge conflicts.

Mark Bathie