Я читав на декількох дискусіях тут і в ТА, що сховища DVCS використовують приблизно той самий або менший простір, ніж їх централізовані зустрічні частини. Я, можливо, це пропустив, але я не знайшов хорошого пояснення, чому це так. Хтось знає?
Я читав на декількох дискусіях тут і в ТА, що сховища DVCS використовують приблизно той самий або менший простір, ніж їх централізовані зустрічні частини. Я, можливо, це пропустив, але я не знайшов хорошого пояснення, чому це так. Хтось знає?
Відповіді:
З мого власного досвіду, такі твердження справжні:
Якщо порівнювати місце оформлення каси (яке саме по собі є сховищем з Git), історія зовсім інша:
Якщо ви порівнюєте кількість байтів, які вам доведеться зменшити чи завантажити, то вона знову відрізняється.
Тож наприкінці ви порівнюєте яблука з апельсинами, і залежно від того, що ви хочете робити із Subversion або Git, результат може бути різним.
@jk запитав про повні копії чи бінарні розбіжності, і я не зміг відповісти на це питання. Я запитав Метью Маккаллоу, який нещодавно влаштував семінар Git на Jax 2012 (який я відвідав). Він узяв час (дуже йому дякую), щоб детально пояснити внутрішню роботу Git. Так, так, там працює компресія (і я проведу експеримент і з офісним файлом мікрософт, і порівняю його зі своєю суттю), але ні, стиснення робиться на весь файл. Посилаючись на його суть:
Вільні об'єкти записуються у стисненому, але недельтатному форматі під час кожного вчинення.
git gc
або накопичивши занадто багато пухких об'єктів, він знаходить хороших кандидатів для дельта-стиснення (git може відрізнятися від попередньої версії), зберігає дельти в "пачку" і видаляє сипучі об'єкти.