Софтварная разработка многогранна. Давайте немного отвлечемся от типичного веб-девелопмента и поговорим об испытаниях при разработке игр.
Я люблю Git, и предпочитаю использовать именно его. Но кодобаза игровых проектов очень большая. Не столько из-за кода, сколько из-за различных
игровых ассетов (текстуры, аудио и т.д.). Проблема Git в том, что он хранит
ВСЁ в локальной копии. А это значит, что он будет хранить и все версии ваших больших бинарных файлов.
Например, на одном из проектов размер всех файлов репозитория игры был
60+ Гб (исключая файлы истории). Теперь представьте размер репозитория, который должен хранить все версии на машине.
Эта проблема останавливала от перехода на Git и приходилось пользовать SVN. Ведь нужно было иметь и полную историю для кода, и все ассеты под рукой. Поэтому
--depth
флаг был не вариант.
Для новых проектов можно структурировать кодобазу таким образом, чтобы ассеты были в отдельном репозитории (сабмодуль), но вот переезд существующих репозиториев — большая проблема.
И вот теперь,
Microsoft (опять удивляет!) объединился с
Github чтобы внедрить поддержку GVFS [
http://www.gvfs.io/ ]. GVFS, как раз, решает проблему больших репозиториев. Ведь в Microsoft столкнулись ровно с тем же испытанием, но на кодобазе Windows.
Надеюсь, что теперь использовать Git при разработке игр станет намного удобнее и предпочтительнее.