Сначала позвольте мне прояснить Capistrano и SCM (такие как git) не являются взаимоисключающими вариантами. Вам все равно следует использовать какой-либо тип SCM, даже если вы развертываете с использованием capistrano ( или одной из других систем развертывания ruby ).
Сказав, что я бы рекомендовал использовать для развертывания какую-то систему SCM, такую как git или mercurial, а не ограничивать ее, если ТОЛЬКО вам придется когда-либо развертываться на чем-либо, кроме Linux. Который я столкнулся. У нас есть требование для развертывания в Linux и Windows, так что capistrano не является хорошим вариантом, более новая версия (> 3) не будет поддерживать windows для каждого официального разработчика (это в группах Google). Но это единственный недостаток использования capistrano по сравнению с ручным использованием git, hg или svn, о котором я могу подумать прямо сейчас. По сути, все, что делают Capistrano и подобные системы, это облегчает вашу жизнь, позволяя вам развертывать приложение в одной / двух командных строках, а не в 10. Это особенно полезно, если вам приходится развертывать на нескольких системах / машинах.
Вы также можете развернуть свой собственный скрипт / решение, если вам нужно, что мы должны будем сделать для поддержки окон.