Контроль версий в программировании в значительной степени необходим, и некоторые программы допускают такие вещи, как отслеживание изменений или контроль версий форм для файлов, отличных от исходного кода (таких как MS Word, InDesign и т. Д.).
Существует ли какой-либо тип системы или архитектуры / протокола, который можно было бы внедрить, чтобы установить контроль версий для файлов не исходного кода любого произвольного типа в любом произвольном сетевом / общем каталоге? [Работает в сети Max OSX]
(Не отслеживать отдельные изменения, сделанные в отдельных файлах (поскольку это было бы невозможно), но, по крайней мере, записывать что-то вроде «Джон Доу проверил этот файл в 12:01 7-15-2010», так что мы можем отследить, кто изменяет файлы, и люди не будут работать с ним, пока он не будет возвращен.)
Если не существует программного решения под ключ, существует ли лучшая альтернатива?
Возможно, можно было бы запрограммировать какую-то систему управления версиями, состоящую из сценариев Bash / Apple, сценариев действий Automator и / или подключаемых модулей Finder, для добавления чего-то вроде команды «щелкнуть правой кнопкой мыши> проверить файл в файле». что синхронизируется с пользовательской программой контроля версий на сервере?
Или есть идеи, как запретить людям вносить изменения в файлы, над которыми могут работать другие люди?
(одна из проблем заключается в том, что люди копируют / вставляют файл на свой жесткий диск и работают над ним, что не позволяет ОС выдавать ошибку «Файл используется». И говорит им не копировать подобные файлы. не вариант.)
Справочная информация:
Моя компания работает с различными видами цифровых файлов (электронные книги, файлы с интерактивной доской, фотографии, видео и т. Д.). У нас часто работают несколько человек над каждым проектом, и иногда они копируют файлы, перезаписывают изменения, сделанные другими, которые работали с одним и тем же файлом одновременно (т.е. копировали файл из общей сетевой папки на локальный жесткий диск, вносили изменения, затем скопировать обратно в сеть), сохранить старые версии в том же каталоге, что и рабочий файл, не обращая внимания на то, у кого и где какой файл (например, люди, копирующие файл из общей папки проекта в свою личную общую папку, вносят изменения, и перемещая его вперед и назад).