Ценность мерзавца для управления многими файлами, больше, чем 500 МБ

Как сказано другими, как Vi / (g) пользователь Vim Вы, вероятно, захотите посмотреть на дополнение Vimperator, которое также обеспечивает, что Вы спрашиваете: в текстовом поле, хит < C-i> запустить внешнего редактора. (может быть определен в _vimperatorrc: набор editor=gvim-f)

10
задан Jon Seigel 14 March 2010 в 20:14
поделиться

4 ответа

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

Git может понадобиться, если вам нужно :

  • знать, что на самом деле изменилось в файле. Но для уровня каталогов лучше использовать другие ответы (Unison или rsynch)
  • , сохраняя близость (то есть «одинаковую ссылку») между вашими данными разработки и этими большими ресурсами. Помогло бы наличие только одной ссылки, но тогда вам понадобится форк Git, например git-bigfiles , чтобы эффективно управлять ими.

Примечание: все еще используя Git, вы можете попробовать этот подход

К сожалению, rsync также не совсем подходит для наших целей.

  • Прежде всего, это не совсем система контроля версий. Если вы хотите сохранить несколько ревизий файла, вам нужно сделать несколько копий, что является расточительным, или xdelta их, что утомительно (и потенциально медленно для повторной сборки и затрудняет удаление промежуточных версий. ) или зарегистрируйте их в git, который все равно расплавится, потому что ваши файлы слишком велики.
  • Кроме того, rsync действительно не может обрабатывать переименования файлов должным образом - вообще.

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

На основе gzip --rsyncable , с POC доступно в этом репозитории Git .

10
ответ дан 3 December 2019 в 19:33
поделиться

Может быть, что-то вроде rsync лучше для ваших нужд (если вам просто нужны резервные копии, без параллелизма, слияния, ветвления и т. Д.)

0
ответ дан 3 December 2019 в 19:33
поделиться

Если вы работаете в системе unix (вероятно, так и есть, поскольку вы используете git):

  • Используйте репозиторий git для всех мелких вещей.
  • Символьные ссылки на большие файлы из одну папку large_files в соответствующие места в вашем репозитории.
  • Сделайте резервную копию папки large_files, используя более традиционную систему резервного копирования без поддержки версий, время от времени объединяйте их все в zip-файл, если вам нужно передать их другим.

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

1
ответ дан 3 December 2019 в 19:33
поделиться

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

1
ответ дан 3 December 2019 в 19:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: