2009-08-19 11 views
6

¿Cuáles son las propiedades correctas/mejores para asignar a los archivos * .xml en Subversion?¿Cuáles deberían ser las propiedades de Subversion para un archivo * .xml?

Estoy particularmente interesado en las propiedades svn:mime-type y svn:needs-lock.

Creo que hay dos respuestas, pero no estoy seguro de cuál elegir. El primero es considerar los archivos XML como archivos de texto, lo que permite a Subversion administrar las fusiones textuales en ellos. Para esto, usaría svn:mime-type=text/xml y no use svn:needs-lock.

El segundo sería considerar los archivos XML como archivos binarios, evitando que Subversion realice fusiones automáticas e insista en el comportamiento de bloqueo antes de editar. Para esto, usaría svn:mime-type=application/xml y establecería svn:needs-lock.

Creo que está bien tratar XML como texto si es el tipo de archivo XML que se edita directamente en un editor de texto, ya que el usuario podría resolver eventuales conflictos de fusión manualmente. Sin embargo, los archivos XML generados por herramientas no se pueden editar fácilmente a mano y, por lo tanto, Subversion no debe fusionarlos automáticamente para evitar que el usuario se encuentre en una situación en la que deba resolver un conflicto en un archivo (esencialmente) binario.

Siendo conservador, estoy tratando los archivos XML como binarios. Pero siempre tengo que explicar esto a los desarrolladores que preferirían poder editar algunos archivos XML directamente, sin necesidad de obtener bloqueos previamente.

Me gustaría saber qué piensan los demás acerca de esto y si realmente existe un peligro con respecto a las herramientas generadas archivos XML o no.

CLARIFICACION POST:

Después de haber leído las tres primeras respuestas me di cuenta de que la pregunta anterior no era lo suficientemente claro.

Mi duda es qué propiedades deben configurarse para los archivos *.xml en la sección [auto-props] del archivo de configuración de Subversion (~/.subversion/config)?

El problema es que solo puede haber una configuración. Entonces, ¿debería ser conservador y tratar todos los archivos XML como binarios o debería complacer a los usuarios que editan sus archivos XML a mano y tratar todos los archivos XML como texto de forma predeterminada?

+0

Dado que tiene algunas respuestas a continuación que parecen responder a su pregunta, considere marcar una de ellas como 'Aceptada' haciendo clic en el tickmark debajo de su conteo de votos (consulte [¿Cómo acepta una respuesta?] (Http://meta.tex.stackexchange.com/q/1852)). Esto muestra qué respuesta te ayudó más y asigna puntos de reputación al autor de la respuesta (¡y a ti!). Es parte de [la idea de este sitio para identificar buenas preguntas y respuestas mediante votaciones ascendentes y aceptación de respuestas] (http://tex.stackexchange.com/about). –

Respuesta

3

Si se genera el XML, primero debe preguntarse por qué está en Subversion. Estoy con los desarrolladores en este caso, pero una solución obvia si debe controlar la versión de los archivos generados es darles extensiones que no sean .xml.

+0

Buen punto. Como ejemplos de "XML generados" que tienen sentido para ser versionados, estaba pensando en cosas como FODT, DIA y archivos XMI. Sin embargo, estos tienen diferentes extensiones y no plantean ningún problema. Me temo, sin embargo, que podría haber algunas herramientas que generan archivos XML con la extensión '.xml'. Pero realmente no conozco ninguna ... – Gnustavo

0

Si el XML es legible por los humanos y se comprende bien, no hay ningún problema al tratarlo como cualquier otro texto. Si solo es legible por máquina o no es algo que tus desarrolladores entiendan bien, debes tratarlo como datos binarios; su nivel de comprensión y habilidad para manipularlo manualmente será el mismo.

7

Utilizamos tanto texto/xml como application/xml en nuestro repositorio Subversion. XML que se edita a mano, es legible por humanos y, por lo tanto, se puede fusionar de manera útil, lo tratamos como texto. Esto incluye cosas como archivos experto pom, y los archivos build.xml, DocBook archivos, documentos XHTML etc.

svn:eol-style=native 
svn:mime-type="text/xml; charset=utf-8" /* so apache sends the right encoding */ 

Para XML que es el formato de archivo complejo de alguna herramienta, lo tratamos como binario. Ejemplos de esto son *.fodt (ODT plano), archivos OmniGraffle, XMI (Modelos UML) y similares. Un usuario no puede ser epxected razonablemente para fusionar dicho archivo, y de hecho a menudo los diffs incluso para cambios triviales son grandes y desordenados.

svn:mime-type="application/xml" 
svn:needs-lock="*" 

Haciéndonos esta distinción nos ha servido bien.

+0

Buen punto. He editado mi pregunta después de haber leído tu respuesta. Me gustó la sugerencia 'charset = utf-8' también. – Gnustavo

Cuestiones relacionadas