¿Cuál es la mejor manera de mantener el código de su sitio en git y pull in core y contrib en el mismo repositorio?

11

Cuando drupal estaba en CVS, tenía mis sitios en un repositorio de git y luego extraje el núcleo y contribuyo a través de CVS. Los dos sistemas felizmente coexistieron y pude rastrear los cambios en todo y hacer parches en los módulos contrib. Ahora con git, no estoy seguro de si solo debo descargar contrib y core y verificarlo en el repositorio git de mi sitio, o tal vez usar submódulos.

Me pregunto si hay alguna mejor práctica sobre esto todavía. Estoy particularmente desconcertado acerca de cómo tener core como submódulo si mi repositorio usa el directorio raíz de drupals como su propia raíz.

naxoc
fuente

Respuestas:

6

No es exactamente la misma pregunta que /drupal/260/deploying-drupal-with-git pero tengo la misma respuesta para usted.

http://freso.dk/en/2011/02/26/managing_fresodk_from_cvs_in_svn_to_git

Creo que puede ser útil tener Drupal Core como un verdadero check out, por ejemplo, hace que sea más fácil rastrear hacks. Porque a veces, simplemente no hay otra manera, ya sea que cambie a .htaccess o tal vez haya aplicado algunos parches para errores que lo afectan directamente.

Berdir
fuente
Me gusta ese enfoque. Lo único que todavía no estoy seguro es cómo empujar el repositorio a control remoto. Quiero decir, si el pago base es de drupal.org?
naxoc
Puedes tener tantos controles remotos como quieras. Para facilitarlo, puede cambiar el nombre del control remoto de drupal a drupal (git branch rename origin drupal), luego agregar el suyo como el origen (git remote add origin [email protected]: repo.git). Entonces todavía puede configurar la rama central (7.x) para extraer de drupal de forma predeterminada (git branch --set-upstream drupal / 7.x 7.x)
Berdir
Perfecto. ¡Eso es justo lo que estaba buscando!
naxoc
Solo una pequeña corrección a git branch rename origin drupal- debería ser git remote rename origin drupal.
naxoc
3

Como no debería estar hackeando el núcleo, invierta su pensamiento: en lugar de convertir el núcleo en un submódulo de su sitio, convierta su código personalizado en un submódulo del núcleo. Una vez que clone el repositorio principal, puede hacer lo que quiera, incluso agregarle sus propios submódulos.

Alternativamente, considere no usar el repositorio central de git para su sitio y actualice a la última versión usando otras funciones, como drush. De esta manera, solo tendría que submódular los módulos contrib. A menos que esté contribuyendo al núcleo o haciendo cosas innovadoras que dependen de correcciones de errores que aún no se han convertido en una versión, la utilidad de obtener todas las confirmaciones a través de VCS es mínima.


fuente