Desplegando con capistrano con repo remoto de git pero sin git corriendo en el server de producción

Tengo una configuration de repository git remoto para el desarrollo centralizado dentro de mi equipo. Sin embargo, el server de producción en el que implementamos nuestras aplicaciones actualmente no tiene ejecutado git en él. Queremos utilizar capistrano para implementar nuestras aplicaciones, ¿cómo podemos configurar nuestras recetas de implementación para 'extraer' desde los repositorys remotos de git cuando se despliega?

En otras palabras, ¿puedo hacer algo como esto?

set :repository, "myserver.com/git/#{application}.git" set :scm, "git" set :deploy_via, :copy 

La solución en su pregunta está cerca de ser correcta. Sin embargo, necesitarás especificar tu repository de git de forma un poco diferente. Lo que necesitas es:

 set :repository, "[email protected]:/home/myproject" set :scm, "git" set :deploy_via, :copy 

Hay más ejemplos de cómo configurar la implementación de git en su joya de Capistrano en lib/capistrano/recipes/deploy/scm/git.rb

Lo que sucede cuando se usa la estrategia de implementación de copy es que Capistrano clona su repository git en /tmp en su máquina local, borra y ajusta el resultado, y luego lo transfiere al server a través de sftp. La estrategia de copy también es compatible con la copy mediante scp, pero no hay forma de decirle que lo haga sin hackear un poco la fuente.

¿Has probado algo como

 set :repository, "myserver.com/git/#{application}" set :scm, :none set :deploy_via, :copy 

Nunca he intentado esto, pero este parece ser el tipo de enfoque que necesitaría usar. Un poco más de información en los RDocs de Capistrano .