Configuré un sitio Drupal bajo control git para el trabajo de desarrollo.
Está parental en un repositorio GIT maestro, desnudo, y a medida que se realizan cambios en mis diversos clones git de proyecto y trabajo, y se devuelve al maestro, un enlace posterior a la actualización empuja inmediatamente los cambios a un solo sitio web en vivo (http: / /staging.loc.). Nada especial, funciona como se esperaba.
También he alias borroso el sitio "@STAGING". En ocasiones, quiero promover mis cambios del sitio de ensayo a un servidor de producción.
Me vienen a la mente dos métodos relativamente sencillos:
(1) En un momento en el que el sitio de ensayo parece estable, cree el sitio de producción como un pago git desde el repositorio principal,
(2) use drush rsync
+ drush sql-sync
desde el sitio de preparación hasta el sitio de producción.
Ambos pueden hacerse trabajar. Aparte del hecho de que (2) parece más centrado en Drupal / consciente por naturaleza, después de todo, drush es un conjunto de herramientas específicas de Drupal: ¿cuáles son los méritos relativos de los dos enfoques?
¿Hay alguna razón en particular que deba considerar (1) sobre (2)?
En cualquier caso, "Todo" está bajo al menos una instancia de control de revisión ...
fuente
"rsync' => array ('exclude-paths' => '.git:.DS_Store:.gitignore:.gitmodules:',"
en el archivo .rc, aunque todavía no estoy seguro de si necesito eso en las especificaciones de los alias de origen y destino o solo en uno u otro.El problema con el uso de drush rsync es que si tienes varias personas empujando cambios al servidor.
Su ejemplo solo muestra a una persona presionando los cambios.
Si tienes al desarrollador A empujando sus cambios y luego el desarrollador B empujando sus cambios, quieres que git elimine los conflictos, o haz que el desarrollador B elimine los conflictos.
fuente
De hecho, uso ambos. svn / git y rsync tienen dos propósitos diferentes. svn / git es para el control de fuente,
rsync
ysql-sync
para sincronizar la puesta en escena y la producción eficientemente.drush rsync @staging @prod
es muy difícil de superar en términos de simplicidad, y es terriblemente fácil de integrar en la mayoría de loscontinuous Integration
entornos en caso de que desee profundizar aún más en la locura / metodologías de calidad de código.fuente
Personalmente, uso Git para el control de versiones, implementación y sincronización de varias bases de códigos de servidor y luego rsync para mover / sincronizar archivos de usuarios (ignorado al agregar ciertas rutas al archivo .gitignore).
fuente