Резервное копирование двоичных файлов в стиле Git

Я занимаюсь интеграцией системы управления версиями GIT в 3ds max для управления версиями файлов .max.

Я тестировал git с файлами max в течение нескольких недель и обнаружил, что он соответствует моим потребностям, но, в любом случае, git немного слишком сложен для такого рода задач. Я ищу программу, которая работает как (ну, почти) git, но:

  1. естественно рожденная программа Windows - git несколько раз терпел неудачу в моих общих сетевых папках и уничтожил мои двоичные max-файлы. Это основная проблема, и я не знаю, как ее решить.
  2. не обрабатывает (даже не пытается) содержимое файла. Думаю, это ускоряет рабочий процесс.
  3. имеет интерфейс, близкий к TortoiseGIT.

Это программное обеспечение должно иметь:

  1. команды фиксации и записи в журнал
  2. поддержка ветвления
  3. быть распределенными, а не ориентированными на сервер, как Perforce.

Я тестировал Mercurial, но он очень медленно работает с большими двоичными файлами. Если кто-то знает, как его ускорить (полагаю, отключив управление контентом) и полностью функционально TortoiseHg, любая информация будет принята с благодарностью.

Спасибо!


person sergo    schedule 15.02.2010    source источник


Ответы (6)


Двоичные файлы имеют своего рода амбивалентные отношения с VCS, потому что:

  • они не сливаются (так что вся "поддержка ветвления" не так уж и интересна)
  • они не очень хорошо различаются (это означает, что хранилище их истории не очень компактно)
  • они обычно могут быть сгенерированы
  • или их можно получить из других репозиториев

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

Возникает вопрос: могли бы вы хранить эти файлы в каком-нибудь другом репо, кроме VCS?
Maven возможно репо (управляемое менеджером репо, например Nexus, не совсем распространенным, но сделанным для ссылки на точную версию любого вид набора файлов).


Якуб Наребски (фактический участник Git) справедливо указывает на проект вилки Git, способный эффективно управлять большим большими файлами.

[git-bigfiles  alt text (хорошо, логотип проекта классный;))

Остается вопрос: является ли VCS правильным инструментом для управления такими большими объектами?
Потому что, по моему опыту, вопрос «очистки истории» рано или поздно будет задаваться из-за постоянно увеличивающийся объем используемого дискового пространства.
И VCS принципиально не созданы для «очистки» своей истории.
Сам Git не может этого сделать, не изменив свой ключ SHA1, что приведет к будущая публикация в других публичных репо проблематична.

person VonC    schedule 15.02.2010
comment
Ветвление очень полезно для двоичных файлов. Не для последующего слияния, а для разделения версий проекта и переключения между ними. Спасибо, что указали на Marven / Nexus. Я посмотрю в документации Nexus. - person sergo; 15.02.2010
comment
Взгляните на проект git-bigfiles, если вам нужен контроль версий для больших двоичных файлов. - person Jakub Narębski; 16.02.2010
comment
@Jakub: Спасибо. Я обновил свой ответ, включив эту ссылку, но также ответил на свой вопрос о целесообразности использования VCS (распределенной или нет) для управления большим файлом. - person VonC; 16.02.2010
comment
Спасибо, Якуб! Можно ли использовать git-bigfiles с ToroiseGit? - person sergo; 16.02.2010

Чего я не понимаю, так это того, почему вы хотите использовать DVCS, не имея возможности различать, и таким образом извлекать из этого пользу, как говорится в первом комментарии.

Я бы посоветовал два возможных направления:

  • взгляните на archiva и / или ivy (инструменты Java), которые были разработаны для управления распространением двоичных файлов, таких как файлы jar, среди разработчиков, но это может быть слишком много java-ориентированного (или даже ориентированного на разработку) для вашего варианта использования, или

  • попробуйте использовать rync и его возможности резервного копирования (rsync может сохранять столько версий, сколько вы хотите, вместо того, чтобы заменять предыдущую копию новой). Кажется, он хорошо подходит для ваших нужд: хорошо работает в Windows, очень хорошо обрабатывает двоичные файлы, а также текстовые файлы, очень эффективно использует полосу пропускания (может сжимать) и поддерживает резервное копирование с несколькими версиями. Единственное, чего вам не хватает, - это графический интерфейс, идеально интегрированный с winexplorer. Может, есть такие, не знаю ..

Надеюсь, это поможет.

Ура,
Кристоф.

= Бэкапы для слабаков. Настоящие мужчины загружают свои данные на FTP-сайт и заставляют всех делать зеркальное копирование. --Линус Торвальдс =

person Christophe Muller    schedule 15.02.2010
comment
Что делает DVCS лучшим выбором, так это то, что пользователя не заставляют использовать какое-то строгое расположение на сервере, он / она может свободно хранить все файлы на локальном компьютере в общей папке. Другой пользователь может получить доступ к этим общим папкам, клонировать репозиторий и продолжить работу над проектом. Наш подход не предполагает слияния, только ветвление (разветвление). Спасибо за предложения. Мне нужно будет посмотреть на rsync, возможно, можно написать сценарий, чтобы он выполнял свою работу правильно. - person sergo; 15.02.2010
comment
Основным преимуществом (D) VCS среди всех остальных инструментов является команда Log. С помощью этой команды у пользователя всегда есть история проекта, и это бесценно - иметь красивую историю вместо десятков файлов со странными именами. - person sergo; 15.02.2010
comment
Я понимаю. Фактически, DVCS был бы намного мощнее, это правда. Но есть также проблемы, такие как накладные расходы, обработка больших файлов (это не было сделано для этого), очистка истории, как было сказано выше (опять же, это не было сделано для этого). Проблема в том, что файловые системы недостаточно мощны для вас, но DVCS будет слишком мощным (+ требует работы): вам нужно что-то среднее, какой-то инструмент, который может легко создавать локальные копии файлов с журналами , и позволяет выбирать и удалять их в какой-то момент .. Может быть, новый инструмент, использующий низкоуровневые функции git, подобные fs? Не знаю .. - person Christophe Muller; 16.02.2010
comment
Спасибо, Кристоф. Какой-то новый инструмент, вот что я пытаюсь найти здесь. Но пока не повезло. Может быть, git-bigfiles решит проблемы. Стоит это проверить. - person sergo; 16.02.2010
comment
Я видел также гибака: eigenclass.org/hiki/gibak-backup-system-introduction или эту вилку: github.com/pangloss/gibak Удачи в ваших исследованиях и, пожалуйста, опубликуйте здесь всякий раз, когда вы найдете что-то подходящее! :-) - person Christophe Muller; 16.02.2010
comment
Почему DVCS? Файлы .max могут быть двоичными, но вы должны иметь возможность создать хорошую таблицу с подробными метаданными о содержимом фиксации. По-настоящему продвинутая настройка может даже регистрировать изменения с момента последней фиксации. это не поможет вам с окончательным слиянием, но позволит сравнить две таблицы метаданных. Плюс это лучше, чем сохранять сотню макс файлов в папке или подпапке. - person Ben L; 06.11.2013

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

Соответствующие ссылки:

person lofidevops    schedule 23.10.2013

Вы рассматривали возможность использования Autodesk Vault? Он хорошо работает с 3dsmax (мы использовали его много лет как для Inventor, так и для 3dsmax). http://www.autodesk.com/products/autodesk-vault-family/features

person IAmNoone    schedule 24.10.2013
comment
Хранилище по-прежнему бесплатное? Думаю, тебе нужно купить это сейчас. К тому же я счел оскорбительным использовать его, если вы не на стройке. - person Ben L; 06.11.2013
comment
И Vault централизован как по желанию (в последний раз я проверял) - person Ben L; 06.11.2013
comment
Вы можете реплицировать данные сервера между серверами хранилища, мы делаем это между серверами, расположенными в разных местах по всему миру, но бесплатная версия не поддерживает это из коробки. - person IAmNoone; 06.11.2013
comment
Основная причина, по которой я хотел бы DVCS, заключается в том, что я могу получить преимущества контроля версий для себя, но подталкивать свой коммит только тогда, когда он будет готов поделиться с остальной частью команды. - person Ben L; 06.11.2013

Что касается git, уничтожающего ваши максимальные двоичные файлы,
вы установили core.autocrlf=false?

GIT был бы довольно бесполезным элементом управления исходным кодом, если бы он уничтожил источники.
Этот вопрос сам по себе SO углубляется в обработку различий в отношении CR и LF в GIT.

person Lieven Keersmaekers    schedule 15.02.2010
comment
Нет, не знал. Сбой случился два или три раза, каждый раз в общей папке, и я не мог его воспроизвести. Персонал нашей компании - это в основном художники, поэтому я должен быть полностью уверен в программном обеспечении, чтобы побудить людей использовать его. Если такой сбой случится с чьим-то файлом, это будет полная катастрофа. Если честно - я немного боюсь мерзавцев. Вот почему я ищу альтернативу. - person sergo; 15.02.2010
comment
Я оставлю ответ, потому что ваш комментарий может быть полезен для других. Во всем остальном VonC может лучше помочь вам с тем, что вам нужно (или не нужно). - person Lieven Keersmaekers; 15.02.2010

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

http://community.southpawtech.com/get-started

http://community.southpawtech.com/tactic-content/quickstart

person IAmNoone    schedule 06.11.2013