19 votos

¿Subversión eficientemente almacenan los documentos de OpenXML Office?

He sido la gestión de la Subversión como un departamento de ingeniería para el almacenamiento de documentos del repositorio para mi empresa. Se está trabajando bastante bien, sin embargo tengo una pregunta acerca de cómo MS Office 2007 formatos son (deben ser) a cargo de la Subversión.

Estoy buscando a una hoja de cálculo de Excel 2007 (de extensión .xlsx) en mi copia de trabajo que la Subversión ha aplicado el svn:mime-type de la propiedad application/octet-stream. Esto significa que la Subversión es tratada como binario, derecho?

Tenía la esperanza de que el nuevo documento de MS Office formatos serán almacenados de manera eficiente por parte de la Subversión. Mi entendimiento es que una copia completa de un binario archivo será realizado en cada confirmación de que el archivo, mientras que si el archivo es de texto, un pequeño cambio en el archivo se traducirá en una pequeña cantidad de datos adicionales que se añaden al repositorio (en una situación típica, al menos).

Yo no entiendo mucho de los detalles de XML, pero pensé que un archivo XML de texto, y que por lo tanto va a ser almacenados de manera eficiente por parte de la Subversión.

Es posible configurar Subversion para que MS Office OpenXML documentos se almacenan de manera eficiente?

Seguimiento (2009-11-09): me he encontrado con que la Oficina de los documentos pueden ser almacenados como texto sin formato mediante el Office 2003 documento XML formatos (Excel: Hoja de cálculo XML 2003; Word: Word Documento XML. Hay una advertencia acerca de la pérdida de formato, pero todavía tengo que encontrar cualquier pérdida notable de formato.

25voto

Wim Coenen Puntos 41940

Desde el OpenXML artículo en la wikipedia:

Un archivo XML Abierto de Office es un Compatible con ZIP OPC paquete que contiene Los documentos XML y otros recursos.

En otras palabras, archivos de OpenXML en realidad son archivos zip con los archivos XML en ellos. La compresión o cifrado de la "mezcla" de los datos, saboteando la subversión de la capacidad de generar diferencias entre las revisiones. Esto no está relacionado con el svn:mimetype. Subversion considera que todos los archivos se binario cuando la generación de los deltas.

En holandés tenemos un refrán que dice "medir es saber". El siguiente gráfico muestra los resultados de un experimento en el que he importado un 500K documento OpenXML en un SVN 1.6 repositorio (revisión 1). Luego he añadido un párrafo de otro documento, guardado y comprometido. Esto se repitió 5 veces (revisión 2 a 6).

openxmlsvn.png

Como se puede ver, la comisión de un nuevo docx revisión que sólo añade un párrafo te costará alrededor de 150K de espacio en disco. Esto todavía es mucho más eficiente que acaba de guardar una copia de cada revisión sin la ayuda de un sistema de control de versiones.

Yo también repetí el experimento con una prueba independiente repositorio descomprimir cada revisión de la docx. Como se puede ver, el almacenamiento de las revisiones del documento sería mucho más eficiente si no estaba comprimido. También es interesante ver que la subversión de la propia compresión de datos es tan eficiente como zip. El almacenamiento de la primera revisión de un sin comprimir docx en subversion tarda aproximadamente el mismo espacio que el original docx.

YMMV.

9voto

Stefan Puntos 29091

Subversion maneja archivos binarios bastante bien. Lo hace no almacene una copia completa de cada commit pero sólo un diff binario eficiente

Consulte las FAQ sobre esto.

3voto

Jesse Weigert Puntos 2712

Lamentablemente, actualmente no puede hacerlo con Subversion, pero ha habido cierta discusión en torno a esto:

http://Subversion.Tigris.org/DS/viewMessage.do?dsForumId=462&dsMessageId=651443

-1voto

Bombe Puntos 34185

¿Alguna vez intentaste abrir un archivo OpenXML en un editor de texto?

Para hacerla corta: no texto, es todavía binario. Así que no, usted no puede hacer subversión manejarlo diferente.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X