3

Я знаю, что SVN (Subversion) хранит дельты файлов для эффективного хранения данных. Git, однако, немного сложнее. Что мне интересно, так это то, что если бы я хранил обычные файлы HTML, изображения и js и следил за их изменениями с любым из них, что привело бы к повышению эффективности хранения и почему? Особенно меня интересуют HTML-файлы. Сначала не должно быть большой разницы. Однако по мере изменения веб-сайта, особенно домашней страницы, разница должна быть очевидной.

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

1 ответ1

8

git абсолютно победит, руки вниз. Довольно часто для git-репозитория с текстовыми файлами (например, HTML) метаданные со всей историей в каталоге .git будут меньше, чем извлечение всего дерева. (Вы можете запускать git gc время от времени, но git запустит его автоматически, если заметит, что хранилище объектов не очень оптимизировано).

Для SVN, с другой стороны, даже простая проверка будет как минимум в 2 раза - она будет содержать все дерево, а также полную резервную копию его в .svn , и не будет включать в себя историю - и все равно будет зависеть от работающего сервера.

Взгляните на статью « Форматы репозитория»:

Хранилище Mozilla CVS было 2,7 ГБ, импортировано в Subversion и выросло до 8,2 ГБ. Под Git он сократился до 450 МБ. Принимая во внимание, что проверка Mozilla занимает около 350 МБ, довольно приятно иметь всю историю проекта (с 1998 года) лишь немного больше места.

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

Есть много других преимуществ для git, но я, очевидно, не могу охватить их все здесь. Я бы порекомендовал прочитать об этом хорошую книгу, например ProGit.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .