Capistrano: ¿Cómo puedo dejar un repository git en vivo / desplegado

Ok, usando capistrano 3.2 con Rails 4.2.

En pocas palabras, quiero tener cada versión en el server en vivo para que tenga un repository de git intacto. Sé que Cap usa git para clonar los files, pero afik elimina la carpeta .git de forma pnetworkingeterminada. Juro que ya funcionaba antes en versiones anteriores de Capistrano, pero ninguna cantidad de Documentos o Google está buscando la configuration correcta. O si tuviera una versión extraña de Cap

Y antes de que me den un salto con "Control de versiones en vivo? Nunca hagas cambios en vivo, desarrolla en tu server de desarrollo idiota !?"

Tener un repository de git activo en vivo es invaluable si algo cambia fuera de tu control, o si hay una emergencia no tienes más remedio que un parche de mono. Porque ahora tienes el cambio que muestra git y puedes confirmarlo, y volverlo a insert en tu repository central para que funcione correctamente. Me salvó el trasero antes y significa que no tengo que copyr a mano lo que sé que ha solucionado el problema "en vivo". De todos modos, justificación más. Alguien sabe como?

Me disculpo por la simple pregunta, creo que es desafortunado google fu que me ha dejado sin respuesta al search esto. La búsqueda de "Capistrano leave git on live" u otros términos similares se inundaron con el uso de git para implementar.

Anímate de antemano.

Esto no sería trivial. Capistrano utiliza el git archive canalizado a través de tar para crear la carpeta de lanzamiento. Hipotéticamente, podrías anular la tarea que hace esto, pero probablemente gastarías más esfuerzo de lo que valdría. Recomiendo encarecidamente que analice la creación de un flujo de trabajo en el que se compromete una revisión y vuelva a presionar. Usamos una twig de prod en la que la producción implementa puntos, por lo tanto, puede comprometer el cambio en la implementación de la twig de prod y de la producción de límite, luego fusionar su cambio de vuelta a su twig de desarrollo.

Si eliges intentar anular esto, mira la fuente de Capistrano para las tareas de git . Utiliza la class de Estrategia Git , por lo que necesitaría subclass y anulación, y luego anular la tarea para usar su class. Capistrano es básicamente una subclass de Rake , así que busque documentation sobre la anulación de una tarea de Rake, p. Ej. Anulación de las tareas de rake pnetworkingeterminadas de los Rails .

¡Buena suerte!