Файлы Subversion и Quickbooks
В настоящее время у меня есть большая проблема на одном из файловых серверов, которыми я управляю для бухгалтерской фирмы.
Quickbooks имеет тенденцию создавать несколько файлов одной и той же вещи много раз, чтобы предотвратить потерю данных. Это хорошо, когда вы обрабатываете всего несколько файлов. Но в бухгалтерской фирме это становится проблемой.
Некоторые старые клиенты имеют 5-10 файлов в соответствующих папках, каждый с разной датой отсечения. Из-за ошибки пользователя некоторые из этих файлов не помечены правильно с правильными датами обрезания.
Это то, где Subversion пришла в голову. Использование системы ревизий позволило бы одному файлу быть основным и иметь все его ревизии. Кто-нибудь когда-нибудь пробовал это с файлами Quickbooks?
Я использовал SVN только с кодом для приложений, что делает каждый размер файла намного меньше. Как SVN справляется с большими файлами, такими как 10-25MB? Я не совсем уверен, как SVN обрабатывает ревизии - он хранит дубликаты файлов и дублирует необходимое дисковое пространство?
4 ответа
Я могу ответить на один из ваших вопросов: мы регулярно используем Subversion для бинарных файлов по 20 Мб, и он отлично справляется с ними. Очевидно, что вы не можете делать различий или обвинять их, и, следовательно, вы не можете иметь параллелизм. Мы используем зарезервированные проверки в наших двоичных файлах, чтобы обойти это.
Книга Subversion действительно хорошо объясняет, как Subversion работает и хранит свои файлы. Единственная часть, которую я могу вспомнить, это то, что когда вы выполняете ветвление, она не хранит полную копию каждого дерева, но относится ли это к двоичным файлам, я не уверен.
Проверьте это на http://svnbook.red-bean.com/
Я думаю, что DVCS (например, git, mercurial или bzr) может быть более подходящим для вашего приложения, потому что это означает, что вам не нужен отдельный репозиторий для файлов... рабочая копия находится в том же месте, что и репозиторий. По общему признанию, настроить репо в SVN легко, но это еще одна вещь, которой нужно управлять... и все системные администраторы знают, что одна вещь, которой нужно управлять меньше, это Good Thing.
Я храню файлы QB в svn уже много лет - в основном с черепахой в Windows. Это работает, но QB не особенно хорошо ведет себя в отношении касания файлов, поэтому вам просто нужно быть осторожным, чтобы не привести к ложным конфликтам.
Например, простое открытие файла касается его, заставляя svn думать, что произошла модификация. Кроме того, QB может настаивать на том, чтобы касаться файлов.nd, даже если они не являются его удаленным бизнесом.
Но это работает. И 20МБ + это не проблема.
Subversion может обрабатывать файлы, которые достаточно велики для ваших целей... Я зафиксировал файлы в сотнях мегабайт, и все заработало; были некоторые проблемы, когда я попал в диапазон 2 ГБ. (Неважно, почему сейчас.)
Подход, который может работать хорошо для вас, в зависимости от ваших настроек, заключается в предоставлении доступа к хранилищу через webdav. OS/X делает использование этих довольно плавным; если вы используете клиенты Windows, вам придется изучить детали, но что-то должно быть. По сути, Webdav предоставит вам общую папку, которая выглядит как часть вашей файловой системы. Вы сохраняете файл Quickbooks в этот общий ресурс и работаете с ним. Все записи завершаются как коммиты в svn, поэтому никаких дополнительных шагов коммита нет. Да, вы будете генерировать большое количество коммитов довольно быстро, но это не должно быть проблемой.
Что касается того, как svn хранит свои файлы, то это довольно сложно, но в сущности он хранит дельты, поэтому у вас нет сотен копий файла, когда у вас сотни коммитов.