2016-07-10 6 views
-1

В принципе, у меня есть тонны больших графических файлов от psd до tiff, являющихся дизайнерской компанией. Мы действительно работаем над каждым из этих файлов и сохраняем каждую версию, которая создает огромные ресурсы. Скажем, например. у нас есть файл с именем abc.psd, который похож на 10 мб, тогда мы делаем некоторые изменения и сохраняем его как abc1.psd, который похож на 20 мб, что означает 10 МБ оригинала + 10 мб новых изменений, и это продолжается до тех пор, пока у нас не будет более 500 MB Final файлы, которые вместе со старой версией занимают ГБ пространства.Git hub как программное обеспечение для локального хранилища и для больших графических файлов?

То, что я понимаю (будучи новичком в кодировании) от Gits, состоит в том, что он требует только дополнительных изменений в 10 МБ, а сохранение - как новая версия, а затем вызов старых 10 МБ из исходного файла. Это что-то вроде, или если кто-то может лучше объяснить это.

Управление файлами git подходит для меня. Если да, то какое программное обеспечение точно учитывает следующий критерий.

  1. My repo являются частными, поэтому я dun хочу принять участие в публичном репо.
  2. Он должен иметь возможность обрабатывать большие файлы.
  3. Я dun хочу разместить его на облаке. Скорее я хочу, чтобы он был на одном из моих компьютеров, который будет служить моим сервером, вот и все.

Я наткнулся на что-то, называемое GIT LFS, но задаюсь вопросом, нормально ли это для Private Repo и если он подходит для управления файлами только локально и не удален.

Может кто-то предложить лучший рабочий процесс, который я мог бы принять. Это было бы большой помощью.

ответ

1

Системы управления версиями, такие как git, обычно хранят несколько версий файлов с точки зрения различий между версиями. Например:

Файл V1

cat 
    dog 
    cow 
    sheep 

файла v2

cat 
    cow 
    sheep 
    camel 

файла v1 разности v2 набор:

delete line 2 
    insert line "camel" after line 4 

Для достаточно больших файлов и/или достаточно небольшие различия, сохранение в версии файла и наборов различий для других версий займет меньше места, чем сохранение всех c omplete версии.

Теперь ... для этой работы, система контроля версий необходим эффективный и эффективный способ для вычисления разницы между версиями файла:

Для текстовых файлов, то легко вычислить разницу. Например.

  1. Split текстовый файл в линии
  2. Compute хэши для каждой строки
  3. дорожки, какие строки были добавлены/удалены/изменено путем сопоставления списков хэшей.

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

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

Что GIT-LFS делает, это заменить большой (двоичный или текстовый) файл в вашем «репо» ссылкой на копию большого файла, который хранится в другом месте. Это помогает, когда вы делаете «git clone». Вы не получаете копию всех версий двоичных файлов в своем локальном репо. Но их все равно нужно где-то хранить, и что-то должно быть доступно.


я наткнулся на то, что называется GIT LFS, но интересно, если тот хорошо для частного Repo и если его подходит для управления файлами только локально, а не отдаленными.

Да, это нормально для частного репо, хотя для больших файлов требуется отдельное хранилище.

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

Кроме того, GIT LFS не устраняет необходимость хранить полные онлайн-копии всех версий ваших файлов изображений.

+0

- Да, это то, на что я точно смотрю, чтобы разместить все данные на одном ПК, которые будут действовать как сервер и другие пользователи, имеющие доступ к этому (что то, что сейчас делает, но без github), но просто хочу clear - Будет ли GIT LFS иметь значение? Будет ли он хранить разницу в версиях или целых файлах, таких как Github. А также если вы можете подробнее остановиться на «... GIT LFS не удаляет ... файлы изображений». Означает ли это, что это обязательно для онлайн-хранения или необязательно. –

+0

1) Какая разница, о чем вы думаете? 2) Нет. Он не будет хранить различия между версиями изображения. 3) Да ... онлайн-хранилище всех версий является обязательным, если вы хотите их восстановить. (Если у вас нет иерархической системы управления хранилищем HSM, чтобы обеспечить прозрачность миграции ленты <->). –