Нормально ли держать копию репозитория на хостинге?
Я привык к тому, что это удобно: положил копию репозитория на продакшн и делаю git pull при необходимости. Пишу на Питоне и Ruby, поэтому отдельно компилировать ничего не надо: на хостинге лежат те же исходники, что и на домашней машине. И распределенная система управления версиями работает еще и как система развертывания проекта. Бонус: если мой коммит завалил какую-то функциональность и тесты этого не выявили, то всегда можно откатиться на любую другую версию кода без дополнительных инструментов.
Если произошла какая-то экстремальная ситуация и в код на сервере были внесены изменения (мимо версионного контроля), то их легко отследить и даже закоммитить прямо оттуда (хотя, я считаю это неправильным).
В чем минусы такого подхода?
Понятно, что для развертывания проекта есть специальные инструменты. Понятно, что они удобны и необходимы при работе с Джавой, например. Но я не вижу, чем git и hg уступают им в этом плане, если разработка идет на интерпретируемом языке.
Я так понял, однажды кто-то собрал кучу исходников из .svn-директорий, открыто лежащих в веб-пространстве, и теперь все VCS на сервере считаются чем-то плохим. Но нужно же понимать разницу…
Это нормальная ситуация, «я 100 раз так делал». Более того, если вы используете распределенную систему контроля версий (самые популярные представители DVCS — это git, hg и bzr), то копия репозитория есть у каждого участника проекта, поэтому вы получается в качестве бонуса резервную копию кода.