Контроль версий для других типов файлов?(файлы не из исходного кода) - PullRequest
1 голос
/ 14 октября 2010

Контроль версий в программировании в значительной степени необходим, и некоторые программы допускают такие вещи, как отслеживание изменений или контроль версий форм для файлов, отличных от исходного кода (таких как MS Word, InDesign и т. Д.).

Существует ли какой-либо тип системы или архитектуры / протокола, который можно было бы внедрить, чтобы установить контроль версий для файлов не исходного кода любого произвольного типа в любом произвольном сетевом / общем каталоге? [Работает в сети Max OSX]

(Не отслеживать отдельные изменения, сделанные в отдельных файлах (поскольку это было бы невозможно), но, по крайней мере, записывать что-то вроде «Джон Доу проверил этот файл в 12:01 7-15-2010», так что мы можем отследить, кто изменяет файлы, и люди не будут работать с ним, пока он не будет возвращен.)

Если не существует программного решения под ключ, существует ли лучшая альтернатива?

Возможно, можно было бы запрограммировать какую-то систему управления версиями, состоящую из сценариев Bash / Apple, сценариев действий Automator и / или подключаемых модулей Finder, для добавления чего-то вроде команды «щелкнуть правой кнопкой мыши> проверить файл в файле». что синхронизируется с пользовательской программой контроля версий на сервере?

Или есть идеи, как запретить людям вносить изменения в файлы, над которыми могут работать другие люди?

(одна из проблем заключается в том, что люди копируют / вставляют файл на свой жесткий диск и работают над ним, что не позволяет ОС выдавать ошибку «Файл используется». И говорит им не копировать подобные файлы. не вариант.)

Справочная информация:

Моя компания работает с различными видами цифровых файлов (электронные книги, файлы с интерактивной доской, фотографии, видео и т. Д.). У нас часто работают несколько человек над каждым проектом, и иногда они копируют файлы, перезаписывают изменения, сделанные другими, которые работали с одним и тем же файлом одновременно (т.е. копировали файл из общей сетевой папки на локальный жесткий диск, вносили изменения, затем скопировать обратно в сеть), сохранить старые версии в том же каталоге, что и рабочий файл, не обращая внимания на то, у кого и где какой файл (например, люди, копирующие файл из общей папки проекта в свою личную общую папку, вносят изменения, и перемещая его вперед и назад).

Ответы [ 4 ]

3 голосов
/ 14 октября 2010

Ни одна система SCM не удовлетворит ваши потребности. Если вы работаете с таким большим количеством разнообразных файлов, то вам необходимо инвестировать в какую-то цифровую систему управления активами или систему управления контентом. Способность извлекать (таким образом блокировать других пользователей) является типичной функцией, и изменения могут отслеживаться, регистрироваться и управляться (пользователи извлекают файл, загружают, чтобы редактировать его, и регистрируют, когда они сделаны). Системы DAM и CMS специально разработаны для использования с типами файлов, с которыми вы работаете, как указано в вашем вопросе.

Одно быстрое дополнение к моему ответу: существует множество систем DAM и CMS, поэтому ваш лучший первый шаг - это создать своего рода RFP, разбивающий вашу текущую среду, потребности, внутренние правила и цели на легко усваиваемые. куски и отправить его различным поставщикам и оценить их ответ.

3 голосов
/ 14 октября 2010

мерзавец намеренно глупый.это так глупо, что он назван за глупость.

Git настолько глуп, что не знает, какой формат используют файлы, которые он отслеживает.Он не знает, как исправить их в слиянии, если два человека редактируют один и тот же файл.(на самом деле, это умно для многих типов, но на самом деле это дополнительный модуль, который не зависит от функции отслеживания версий)

, но он достаточно умен, чтобы не допустить перезаписи изменений, когда они расходятся.И он также скажет вам, кто виноват, когда это произойдет.

git не управляет центральным хранилищем, такой концепции нет.в git каждый человек, делающий изменения, имеет полный репозиторий на своей локальной машине, и они передают изменения друг другу.Вы можете «подделать» центральное хранилище, передав изменение в официально «благословенное» хранилище на каком-нибудь удобном сервере.

Так как же все это отвечает на ваш вопрос?

Существует ли какая-либо система или архитектура / протокол, которые можно было бы внедрить для установления контроля версий для не исходного кодафайлы любого произвольного типа, в любом произвольном сетевом / общем каталоге?[Работает в сети Max OSX]

Или есть идеи, как запретить людям вносить изменения в файлы, над которыми могут работать другие люди?

Git не знает или не заботится о том, чтоотформатировать это отслеживание.Это относится ко всем файлам одинаково.То, что вас действительно беспокоит, - это предотвращение того, чтобы один человек облепил все изменения другого человека.

Git обходит эту проблему полностью.Официальной копии Clobber не существует.Если вы используете централизованный сервер, и один пользователь пытается отменить изменение, которое перезаписывает более новое изменение, чем тот, которого видел пользователь, принудительное завершение завершается неудачно.Пользователь должен вытащить новую версию, разрешить изменения / конфликты и повторить попытку.Даже если пользователь упорно просто падает старое изменение на пол и загружать его самостоятельно без учета изменений, произошедших между его первой тягой и окончательным толчком, никаких данных не теряется, потому что мерзавец держит все , иболее ответственный человек может выбрать эти файлы и починить их.

0 голосов
/ 14 октября 2010

Для системы Digital Asset Management с открытым исходным кодом взгляните на ResourceSpace.

http://www.colorhythm.com/prismpoint_FAQ.php

0 голосов
/ 14 октября 2010

Поскольку ваш сервер поддерживает FUSE , одна возможность с низким усилением с низким уровнем боли заключается в использовании CopyFS , в котором хранится копия каждой версии каждого файла.Основным недостатком является то, что он беспринципен (он просто сохраняет копии, он ничего не делает против одновременного редактирования или хранения изменений) и что он может быть ресурсоемким (каждый раз, когда вы сохраняете, вы получаете новую версию).Основным преимуществом является то, что он полностью автоматический, поэтому вам не нужно обучать пользователя.

Tortoise SVN и его аналоги для различных других систем контроля версий довольно популярны в мире Windows.Они обеспечивают интеграцию оболочки, но не интеграцию приложений.В Mac OS X Google находит SCPlugin ;Я понятия не имею, насколько хорошо это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...