Контроль версий с минимальными затратами дискового пространства - PullRequest
5 голосов
/ 19 января 2009

Я рассматривал возможность использования системы контроля версий, такой как SVN, в качестве универсального инструмента резервного копирования и синхронизации между несколькими компьютерами, которые я использую. Это будет для всех видов данных, в том числе MP3 и DVD с разорванными дисками - много данных (120 ГБ +).

Моя основная проблема заключается в том, что SVN создает копию каждого версионного файла в каталоге .svn. Хотя я вижу, что это очень полезно в большинстве случаев, оно совершенно не нужно для моих целей и приводит к огромной трате дискового пространства.

Есть ли VCS, которая не создает дубликаты файлов в вашей рабочей копии?

Изменить, чтобы уточнить: Я просто говорю о размере необходимых файлов на каждом компьютере. Для SVN это будет означать размер рабочей копии и ее метафайлов - для DVCS это будет размер WC и хранилища.

Ответы [ 4 ]

9 голосов
/ 19 января 2009

Git чрезвычайно экономен, когда дело доходит до места на диске.

Сравнение Git и SVN Wiki :

Размеры Git-репозитория и рабочего каталога чрезвычайно малы по сравнению с SVN.

Например, репозиторий Mozilla, как сообщается, имеет почти 12 ГиБ при хранении в SVN с использованием бэкэнда fsfs. Для бэкэнда fsfs также требуется более 240 000 файлов в одном каталоге для записи всех 240 000 коммитов, сделанных за 10-летнюю историю проекта. Точно такая же история хранится в Git всего двумя файлами общей стоимостью чуть более 420 МБ. SVN требует 30-кратного дискового пространства для хранения той же истории.

Рабочий каталог SVN всегда содержит две копии каждого файла: одну для пользователя, с которой он фактически должен работать, а другую - скрытую в .svn / для помощи таким операциям, как status, diff и commit. Напротив, рабочий каталог Git требует только одного небольшого индексного файла, в котором хранится около 100 байт данных на отслеживаемый файл. В проектах с большим количеством файлов это может существенно отличать дисковое пространство, необходимое для каждой рабочей копии.

4 голосов
/ 19 января 2009

Я думаю, вам нужно задать более конкретный вопрос, чтобы получить правильный ответ на то, что вы пытаетесь сделать. На самом деле вам нужна не система контроля версий, а система управления цифровыми активами.

http://en.wikipedia.org/wiki/Digital_asset_management

Звучит лучше?

0 голосов
/ 19 января 2009

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

Если вы не хотите удалять содержимое из резервной копии, имеющейся в источнике, просто не добавляйте параметр --delete в rsync.

0 голосов
/ 19 января 2009

На самом деле, я полагаю, что, по крайней мере для текстовых файлов, SVN сохраняет только различия между файлами, а не весь файл, для каждого изменения. Кроме того, для каждой ревизии хранятся только изменения в файлах, которые были изменены, и ничего больше для файлов, которые не были изменены. Если фактические файлы MP3 постоянно не изменяются (вероятно, нет), это была бы достойная система для отслеживания файлов. Однако для таких файлов вам, вероятно, лучше использовать rsync для синхронизации файлов и не беспокоиться об отслеживании их реальной истории.

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