Я привык проверять обычную рабочую копию на веб-сервере. Если файл не существует в хранилище, он не должен быть в Интернете. Таким образом, вы можете легко перемещать всю сеть и создавать дополнительные версии (например, бета-версию в другом домене), не беспокоясь о копировании всех необходимых файлов. И вы можете легко добавлять новые функции, не нарушая версию выпуска - просто поработайте над функциями в отдельной ветке, протестируйте ветку с другим URL-адресом и, когда вы будете готовы, объедините ветку обратно в транк и обновите копию транка. *
Конечно, существуют некоторые недостатки, связанные с проверкой обычной рабочей копии на сервере, например, возможно, есть некоторые файлы, которые вы не хотите передавать через Интернет. Это может и не может быть проблемой - я работаю с Catalyst , так что это меня не беспокоит, так как каждый запрос проходит через стек контроллера в любом случае.