La subversión de combinación de plug-in / check-poste / pre ganchos de pago y envío
-
14-10-2019 - |
Pregunta
Me gustaría fuente de administrar un conjunto de archivos que se construyen como archivos zip, que contiene los archivos XML.
Dado que actualmente esos archivos se comprueban en como es, que son tratados como archivos binarios con todas las limitaciones obvias
Desde esos archivos contienen archivos XML, para evitar que pide a los programadores zip / descomprimir, me gustaría hacer lo siguiente, de forma automática
Los registros de entrada : explotar de forma automática los archivos:
- Estos archivos tienen una extensión única, por lo que para cada fichero puso en contacto con esa extensión
- descomprimir ese archivo a la memoria / ubicación temporal
- Para cada uno de esos archivos (XML) a normalizar (para la comparación / fusión)
- Reordenar de la raíz nodos secundarios directos en un orden predefinido (por ejemplo alfabético)
- Algunos artículos tienen ID de referencia locales, reescribir los ID sequentialy después de la clasificación
- crear una carpeta en el SVN con el mismo nombre que el archivo comprimido original,
- comprobación en los archivos de la postal en esa carpeta ??li>
Para salidas : volver a empaquetar automáticamente los archivos:
- No menos importante - se puede hacer usando Maven / Ant
- Cuando la salida a la carpeta estallado (o cualquiera de sus archivos de contenido)
- En lugar de comprobar que las carpetas / archivos:
- Comprimir todos los archivos en esa carpeta ??li>
- Y echa un vistazo al archivo comprimido
Para Merges
Asumo la fusión no es del lado del servidor SVN, y es responsabilidad del cliente, por lo que hay una manera fácil de escribir un plugin de fusión en su lugar, (por ejemplo, para la tortuga)
es el cualquiera de los anteriores posible? si es así, ¿cómo? ¿hay más de una forma?
Solución
En lugar de complicar la pre / gancho de registro después de escribir una envoltura alrededor de la aplicación que crea estos archivos zip sería más fácil. La envoltura debe descomprimir todos los archivos y proporcionar en una carpeta.
La otra forma es lo que usted ha descrito. Sin embargo, la complejidad es tener un disparador para hacer esto para todos los archivos zip. Usted podría terminar con otro filtro en el gatillo para hacer esto sólo para archivos de carpetas específicas y tienen que mantener los conjunto de carpetas en una base de datos separada. Para evitar estas complejidades escribir una envoltura alrededor de la aplicación.