2009-04-24 13 views
5

Estoy trabajando en un documento de Open Office con un socio y estamos utilizando subversion para colaborar en él. Sin embargo, estamos guardando el documento como un archivo .odt y Subversion lo lee como un tipo de archivo binario. Por lo tanto, me preocupa que cuando vayamos a fusionar los archivos y aparezca la diferencia, no podamos realizar adecuadamente las fusiones si hay conflictos; no podremos entender el archivo .odt sin procesar.¿Cómo debo guardar un archivo en OpenOffice para que no sea un archivo binario en Subversion?

Así que mi pregunta es "¿Cómo guardo un documento en Open Office para que conserve todo el formato que esperaría y desea pero guarda como un archivo binario y por lo tanto puede fusionarse fácilmente?"

¿O estoy usando el método incorrecto para hacer esto? (Que es más que probable)

+0

Dado que Opendocument utiliza archivos xml comprimidos, como suele ser el caso hoy en día para suites de oficinas, no podrá hacer esta combinación con subversión. Utilice las funciones de OpenOffice para lograr esto. –

Respuesta

13

Por mucho que lo odie, LaTeX le proporciona un medio para crear documentos, pero los mantiene en subversión como texto, que se fusiona fácilmente.

Aparte de LaTeX o simplemente guardando los documentos de texto, configurar un bloqueo en el archivo con Subversion es su mejor opción.

+0

Y una vez que comienzas a usar LaTeX ya no lo odias más ... –

+0

Teniendo en cuenta Latex ahora ... +1 –

+2

En realidad svn fue la razón por la que comencé a usar LaTeX de nuevo ... Y puede agregar pequeños scripts que agreguen "svn info" directamente en el documento LaTeX para que sepa qué versión está usando. – Johan

7

Para formatos de archivo binarios complejos (de los cuales .odt es uno), he encontrado que es una buena idea usar el bloqueo en Subversion y no intentar fusionar los cambios. Establezca la propiedad de Subversion svn:needs-lock en el archivo y se le solicitará que solicite un bloqueo en el archivo antes de editarlo (consulte Locking en el libro de Subversion para obtener más información). Esto ha funcionado bien en mi situación, pero depende de su nivel de colaboración si le va a funcionar bien.

+0

Una buena respuesta, por lo que +1, pero ya lo hice y lo que realmente quiero es una forma de tener un archivo que pueda ser leído por los hombres en el nivel sin formato mientras se sigue reproduciendo el formato provisto en los archivos .odt . (Voy a marcar a alguien con la respuesta si no hay manera de hacer lo que quiero) –

4

Los archivos .odt son archivos XML comprimidos AFAIK. Sin embargo, incluso si los guarda como XML descomprimido, dudo seriamente de que pueda hacer fusiones de cualquier cosa que no sean los cambios más pequeños.

+0

Lo investigaré, pero apuesto a que tienes razón. Sería poco probable que pudiera detectar los cambios; Todavía al menos sé lo que estoy haciendo ahora. Gracias por (AFAIK info +1) –

1

El formato .odt es en realidad un formato de archivo zip (en la mayoría de los casos), que empaqueta su documento y posiblemente otros recursos binarios. El hecho de que sea un archivo zip significa que es intrínsecamente binario. Puede haber una manera de guardar el documento en texto plano XML utilizando OpenOffice. No estoy seguro.

Si realmente necesita la posibilidad de combinar cambios, probablemente será mejor con un formato de texto sin formato.

1

La fusión de una página compleja será un problema, ya que la subversión no podrá hacer un buen trabajo.

Al bloquear, solo una persona puede trabajar en él a la vez.

Puede guardarlo como una página html cada vez, si no le gustan las sugerencias LaTex o .txt.

Puede escribir algún complemento para OpenOffice que permita el trabajo colaborativo, tal vez.

6

Un archivo no tiene que ser un formato de texto para ser diferido y fusionado, siempre que el proveedor proporcione una buena herramienta de fusión y diferencia. Y siempre que el VCS se pueda configurar para usar estas herramientas externas de combinación/diferencia. Sin embargo, es raro tener tales herramientas de diferencias y fusiones proporcionadas para formatos de documentos patentados.

TortoiseSVN puede diferir documentos de Word y eso es extremadamente útil. Al parecer, también puede fusionarse, aunque nunca lo he intentado. Creo que puede diferir y fusionar documentos de OpenOffice, pero nunca lo intenté.

TortoiseSVN puede "clasificar" los documentos de Excel, pero no es muy agradable de usar. Sin fusionar

En mi empresa, establecemos svn: needs-lock en documentos de Word y Excel para evitar problemas de combinación. Incluso entonces me parece muy útil poder modificar las revisiones anteriores y ver qué cambió.

+0

No sabía que TortoiseSVN podría hacer eso. +1 –

0

Los archivos complejos mantenidos por la máquina siempre serán difíciles de combinar en un sistema de control de versiones, incluso si están almacenados como texto. ¿Y si fuera XML OpenOffice.org sin comprimir? Un simple cambio que realice modificará muchas líneas en todo el archivo XML, lo que generará posibles conflictos.

Lo mejor que puede hacer es utilizar un formato más simple, como Markdown, porque un formato simple genera menos cambios, lo que permite una fusión más confiable. Muchos escritores usan Markdown y es fácil de aprender.

Hay muchos editores que admiten este lenguaje de marcado, pero puede que tenga que modificar un poco su flujo de trabajo. Hay, por ejemplo, un script de conversión ODT to txt, que convierte ODF a txt con formato de reducción. Además, pandoc puede convertir entre muchos formatos, como Markdown y ODF.

Así que hay dos opciones:

  1. Cambio a un editor que soporta directamente de rebajas (un simple editor de texto va a hacer, pero usted podría ir para un editor de texto más avanzado con el modo de rebajas como VIM Markdown mode)
  2. Inserte un paso de conversión entre Markdown y el formato de OpenOffice.org. (asegúrese de probar primero la viabilidad)
Cuestiones relacionadas