Version control in programming is pretty much a necessity, and some programs allow for things like change-tracking or a form version control for files other than source code (like MS Word, InDesign, etc.).
Is there any kind of system or architecture/protocol that could be put in place to establish version control for non-source code files of any arbitrary type, in any arbitrary networked/shared directory? [Running on Max OSX network]
(Not tracking individual changes made in individual files (as that wouldn't be possible) but at least recording something like "John Doe has checked this file out at 12:01PM on 07-15-2010", so that we can track who is modifying the files, and people know not to work on it until it's checked back in.)
If no turn-key, software-based, solution exists, is there a better alternative?
Perhaps it would be possible to program some kind of version control system composed of Bash scripts/Apple scripts, Automator actions, and/or Finder plug-ins to add something like a "right click > check in/out file" command that syncs to a a custom version control program on a server?
Or any ideas how to prevent people from making changes to files that other people might be working on?
(one of the issues is people copying/pasting the file to their HDD and working on it, which prevents the OS from throwing the "File in use" error. And telling them not to copy files like that isn't an option.)
Background:
My company works with various kinds of digital files (ebooks, interactive whiteboard activity files, photographs, videos, etc.). We frequently have multiple people working on each project, and sometimes they copy files, overwrite changes made by others who were working on the same file at the same time (i.e. copied the file from a network share to their local HD, made the changes, then copied back to the network), keep old versions in the same directory as the working file, lose track of who has what file where (like people copying the file out of the shared project directory and into their personal shared folder, making changes, and moving it back and forth).