2010-06-08 12 views
12

Somos una empresa de diseño web, yendo por el camino de establecer un sistema de gestión de revisiones, y todos los procesos sobre cómo vamos a usarlo, etc. Estamos considerando utilizar el sistema de gestión de revisiones git .Usando GIT con Joomla

Desarrollamos principalmente nuestros sitios web en el Joomla! Content Management System (CMS). Me gustaría saber cómo otras empresas administran sus repositorios cuando se trata de un CMS. Nos ocupamos principalmente de la creación de plantillas, y ocasionalmente personalizamos componentes o complementos que hemos instalado.

Mis principales preguntas son:

  • es la mejor manera de almacenar todos los archivos (incluyendo los archivos de Joomla) en el repositorio, o simplemente archivos que realizar o cambiar a ti mismo?
  • ¿Mantiene en alguna parte una copia de la base de datos (que Joomla usa para su funcionamiento y almacenamiento de contenido) para dar cuenta de los cambios en la base de datos?
+1

Puede ser más fácil usar SVN simplemente porque ese es el SCM que usa Joomla. Creo que hay una manera de agregar una opción de repositorio externo a sus propios directorios, así que básicamente el repositorio de Joomla sería extranjero y extraería actualizaciones cuando Joomla actualice su código fuente y luego simplemente se preocupe por su propio código.Sin embargo, obviamente (siempre) es un poco más complicado que eso, así que estoy seguro de que alguien después de mí podrá darte mejores consejos. ¡La mejor de las suertes! –

Respuesta

4

Para su primera pregunta, generalmente la mayoría de los grupos verificará en todos los archivos relacionados con los proyectos (con excepción de los registros y archivos temporales). Si desea almacenar su base de datos, almacene un volcado de la base de datos (y no los archivos binarios). Debe asegurarse de incluir tanto los datos como el esquema.

1

Estamos en una situación similar a usted - agencia de diseño con sitios de Joomla.

Utilizamos Subversion, con cada sitio web como un repositorio. Cuando comenzamos un proyecto, descargamos la última versión de Joomla y la colocamos en SVN. Luego verificamos el sitio desde SVN a una máquina local y trabajamos en él, registrándonos cuando sea necesario.

5

Este artículo de Joe LeBlanc es una de las pocas cosas que he encontrado en relación con Control de Revisiones en Joomla !: http://joomlaablog.blogspot.it/2010/11/how-to-track-your-joomla-project-with.html

Hay dos estrategias generales que puede emplear para el uso de Git con Joomla: o bien seguir el toda la instalación de Joomla o rastrear una extensión específica de . El mayor impedimento para rastrear Joomla con Git es el tamaño de la base de código de Joomla. Si bien Git es razonablemente rápido, aún puede ser excesivo realizar un seguimiento de una instalación completa de Joomla si está agregando una plantilla o módulo.

Por otro lado, poner todo en Git hace posible que determine cuándo se aplicaron los parches en el sitio de Joomla. Puede ser útil cuando intenta rastrear un problema en un parche específico. Además, si está creando varias extensiones que están diseñadas para que funcionen juntas, es posible que no tenga más remedio que colocar todo el sitio bajo control de versión.

Si está trabajando en una sola extensión y sabe que es la única que formará parte de un proyecto, puede ser más conveniente rastrear un solo directorio. Un único componente de interfaz solo, back-end componente, módulo o plantilla son candidatos para ser rastreados por separado de una instalación de Joomla. Es difícil hacer un seguimiento de los complementos de esta manera, debido a que los archivos plugin .php se colocan uno al lado del otro en carpetas compartidas.El seguimiento de componentes completos de esta manera también es problemático, ya que los cambios en el servidor pueden afectar el comportamiento en frontend.

2

Si elige la primera opción (rastrea toda la joomla), tiene que .gitignore todo el núcleo y cada vez que se agrega una extensión externa. De lo contrario, es una pesadilla cuando alguien instala una extensión y la compromete. Luego tienes que descubrirlo después de tirar y a veces no funciona. Además, la versión que Joomla cambia es difícil de gestionar.

Defiendo repositorios diferentes para diferentes extensiones, pero todavía estoy buscando una forma de tener un repositorio para un componente completo (administración + frente + instalación). ¿Alguna idea (submódulos o subárbol mergin tal vez)?

9

Sé que esta pregunta ya tiene una respuesta aceptada, pero tal vez alguien vuelva a esto y la encuentre útil.

  • Creo que el seguimiento completo de joomla y el intento de excluir archivos centrales es casi imposible y, como dice @vicgilbcn, puede convertirse en una pesadilla.
  • Por otro lado, si está desarrollando un componente para J! que 'desafortunadamente' es slipt en 'components/com_mycomp', 'administrator/components/com_mycomp' y probablemente 'media/com_mycomp' deberías tener 3 repositorios git separados para rastrearlo, por lo que tampoco es viable.

Así que lo que ocurrió con y parece estar funcionando bastante bien, es la siguiente: Digamos que tengo una J normal! deloyment con mi componente com_mycomp dentro.

  • Creo una carpeta fuera de la base de código de joomla y la llamo "COMÚN".
  • en "COMÚN" creo un "Joomla" carpeta
  • en "COMÚN/joomla" puedo crear carpeta "Mycomp" que llevará a cabo la totalidad código base de mi componente
  • en "COMÚN/joomla/Mycomp" Yo uso la estructura de carpetas Joomla y I MOVE (no copia) 'components/com_mycomp', 'administrator/components/com_mycomp' y 'media/com_mycomp' dentro de ella.
  • luego vuelvo a donde eliminé las carpetas y creé enlaces simbólicos a las nuevas ubicaciones.

De esta manera a puede ahora crear un repositorio de git en COMMON/joomla/myComp.

Obviamente, este entorno debe ser un entorno de desarrollo local donde puede ajustar la configuración de apache/php, sin implicaciones de seguridad, para que esto funcione. (No puedo recordar si realmente tuve que hacer alguna modificación de configuración especial para que esto funcione, si no comprueba los registros ...)

De hecho, esta solución resuelve otro problema. Trabajando de esta manera, puede vincular simbólicamente las carpetas de código base de su componente a dos implementaciones diferentes de Joomla (una J! 2.5.x y una J3.x.x por ejemplo) y podrá desarrollar/verificar la compatibilidad de sus componentes de manera inmediata contra las diferentes versiones.

+0

¡buena respuesta! 'en" COMMON/joomla/myComp "Utilizo la estructura de carpetas de Joomla' con esto ¿te refieres a la estructura joomla completa o solo a estas tres carpetas: componente, administrador y medios? Gracias –