2012-08-10 13 views
10

Hola, he querido dar la vuelta a esto por un tiempo, pero me gustaría usar git para mantener algunos sitios de desarrollo de typo3. Investigué un poco y la información más informativa (chromium translated site) sobre el tema no está clara pero me hizo pensar. Me gustaría saber cómo configurar un repositorio administrado por git y si hay algunas/otras carpetas que debo ignorar al configurar el repositorio, lo que debería tener cuidado, las mejores prácticas, etc. He decidido que con cada versión , un volcado de db se haría por separado, lo que corresponde con el hito, porque a partir de ahora no estoy seguro de cómo lidiar con este aspecto del control de versiones de CMS.¿Cuál es la mejor manera de administrar las instalaciones de TYPO3 utilizando git?

+1

El enlace se ha perdido, probablemente esté desactualizado de todos modos, pero aquí está lo que queda: http://web.archive.org/web/20130706031806/http://www.chmuul.net/2010/02/saubere- git-repositories-fur-typo3-projekte –

Respuesta

18

No es típico .gitignore

/fileadmin/user_upload/ 
/fileadmin/_temp_/ 

/uploads/ 

/typo3conf/temp_CACHED* 
/typo3conf/temp_fieldInfo.php 
/typo3conf/localconf_local.php 

/typo3/ 
/t3lib/ 
/typo3temp/ 

Tenga en cuenta que cuando se utiliza con TYPO3git no debe instalar cualquier extensión del mando a distancia con Extension Manager!

En su lugar, importe la extensión localmente, instálela localmente y luego confirme y envíe los archivos de ext. Y modifique localconf.php al servidor remoto.

Al final de la localconf.php incluyen localconf_local.php (ignorado)

@include('localconf_local.php'); 

Permitirá para anular es decir. credenciales para DB o ruta personalizada ImageMagick sin cambiar el localconf.php original. Cada desarrollador en el equipo, por supuesto, escribe sus propios valores en localconf_local.php.

Las carpetas típicas de TYPO3 ignoradas en .gitignore se deben crear manualmente en cada instancia, es decir.

typo3temp

fileadmin/user_upload

Por supuesto también necesita descargar sorces TYPO3 (typo3, t3lib carpetas) - no hay sensación más grande para mantenerlos bajo control de versiones.

Otras cosas, como uploads se deben descargar manualmente desde el control remoto, por lo que es mejor escribir un script que lo empaquetará y cada desarrollador tendrá la posibilidad de descargarlo con algún enlace. No puede agregar esto al repositorio de git, ya que estos archivos solo se crearon al crear el elemento de contenido, por lo que si no los ignora se arriesga pronto a un gran conflicto de fusión.

+1

Gracias por el consejo para ambos. Aceptaré una respuesta una vez que haya implementado esto con éxito en unos días. –

+1

Debe tener cuidado de, p. "/.git/config" no se expone públicamente a través de HTTP (hice un hábito para poner typo3 cosas en una/public/subfolder). editar: jaja, chmuul.net es mi blog :) Si tiene más preguntas, por favor pregunte. – AaL

+0

Nota adicional: veré si puedo reescribir el tutorial de forma más detallada, traducido al inglés y con mi recibo de capistrano. – AaL

10

Me gustaría agregar algunos aspectos a biesiors muy buena respuesta: Desde mi experiencia, la mejor estrategia es poner fileadmin/ y typo3conf/ bajo control de versión, y nada más al principio. Si usa extensiones, por lo tanto, utilizará la última versión del depósito TER únicamente. La configuración de extensión (configuración de typoscript, valores de locallang) se colocará en archivos externos dentro de fileadmin /. Estructura de la carpeta de ejemplo:

fileadmin/ 
- css/ 
- images/ 
- javascript/ 
- scripts/ 
- templates/ 
- - html/ 
- - templavoila/ 
- - typoscript/ 
- - xml/ 

No almacene ninguna información de tipascript en la base de datos; no se puede versionar desde allí.

Lugar .gitignore donde sea necesario. También ignoramos typo3conf/ext/ y typo3conf/l10n/. ¿Por qué? Si escribimos nuestras propias extensiones (o modificamos las existentes), agregamos el typo3conf/ext/my_extensionname/ a otro repositorio. De esta manera, la extensión en sí puede mantenerse bien, especialmente si se usa en múltiples proyectos.Y las extensiones sin cambios no necesitan ser versionadas en absoluto.

Siga la sugerencia @include('localconf_local.php'); - esta es una buena práctica.

Esta configuración agrega una mayor demanda en la disciplina de codificación, ¡pero será recompensado! Hemos estado trabajando así de manera exitosa para más de 12 proyectos ahora en un equipo de dos.

+0

Actualmente estamos almacenando todo el directorio ext/en un repositorio de git. ¿Qué técnica está utilizando para obtener todas las extensiones en el lugar correcto de los repositorios dentro de un proceso de despliegue automatizado? Los submódulos de Git parecen realmente inflexibles y con muchos gastos administrativos. Usando la técnica del subárbol de git, siempre podrías extraer la extensión a un repositorio separado si así lo deseas. Creo que almacenar todas las extensiones en diferentes repositorios es más problemático de lo que vale. Por favor, cuénteme sobre sus argumentos para hacer esto. – Ivo

+1

Puede haber un malentendido: solo incluimos las extensiones que estamos desarrollando nosotros mismos, en la mayoría de los proyectos solo uno o dos. Todas las demás extensiones son ignoradas por 'typo3conf/ext /' en '.gitignore' – Mateng

Cuestiones relacionadas