Comments 11
как автоматически их диапазоны версий в соответствии с semver.
что?
Дикий раздрай - не знаю ржать как конь или рыдать на взрыд.
Я тупой наверное, нифига не понял :(
Кроме того что удалось сильно уменьшить размеры репы
Чтобы не сохранять каждую новую версию файла полностью, сохраняются только изменения относительно предыдущей версии - если это возможно и оправдано с точки зрения экономии пространства.
Но код, который должен был сравнивать изменения, вместо полного пути файла использовал только последние 16 символов. Пример, 3 файла:
addons/source/libraries/CHANGELOG.md
main/source/libraries/CHANGELOG.md
frontend/source/libraries/CHANGELOG.md
Вместо сравнения содержимого каждого отдельного файла со своей предыдущей версией, для сжатия каждый из них будет сравниваться только с каким-то одним из этих трёх (хз по какому принципу оно там сортируется, не суть)
Затем git будет видеть что чёт содержимое frontend/source/libraries/CHANGELOG.md уж очень отличается от того, с чем он сравнивал (например, addons/source/libraries/CHANGELOG.md) и каждый раз будет сохранять полную версию этого файла
и их CHANGELOG.json
был десятки мегабайт, а менялись всего несколько строк каждый раз. Ну, скажем, килобайт. То есть гит запоминал в десятки тысяч раз больше, чем надо.
То есть гит запоминал в десятки тысяч раз больше, чем надо.
так наверно не запоминал, а запоминает? никто же не пофиксил эту проблему? И я так понимаю не собирается фиксить судя по вялой реакции на пост?
Получается что ГИТ который фактически стал отраслевым стандартом, является продуктом среднего качества, мягко говоря! Самое интересное что проблемы с таким высоко-востребованным продуктом никого особо не беспокоят и не трогают в общем то!
Теперь понял. Спасибо! Неужели текстовые файлы, даже если их было десятки мегабайт, так сильно увеличили репу. Для этого же должно быть очень много комимитов где есть изменения в какой-либо из них
Странно что никто не пошутил про node_modules :)
А за раскрытие такой особенности гита -- спасибо, интересно!
Из статьи я понял, что в репозитории не должно быть двух файлов с одинаковыми именами, один из которых при этом будет часто изменяться. При этом ещё должно не повезти, чтобы его начало сравнивать не с тем.
Как мы уменьшили размер нашего Javascript монорепозитория в Git на 94%