2010-07-20 8 views
39

¿Alguien ha encontrado un complemento Git o Hg para diffs/merging/branching "significativo" de archivos de Word de OpenOffice o Microsoft.Complemento Git (o Hg) para tratar con Microsoft Word y/o archivos de OpenOffice

Sé que puedo 'verificar' archivos .doc pero tanto Git como Hg los tratan como blobs binarios. Me gustaría poder hacer todas (o al menos muchas) de las operaciones basadas en revisiones normales en el texto del archivo.

Y sí, sé que debería utilizar Latex o convertir archivos de ida y vuelta entre RTF. Solo busco una solución más "nativa" ya que estoy tratando de gestionar la colaboración entre técnicos y "gerentes".

Esto tiene que ver con mi pregunta sobre Biostar aquí: http://biostar.stackexchange.com/questions/1749/writing-collaboration-with-source-control-and-microsoft-word

Gracias.

+3

No es una respuesta: Utilice un wiki. Si necesita versionarlo/llevarlo consigo, busque un wiki habilitado para git/hg con un servidor web (los técnicos pueden usar los archivos wiki/una copia local, los gerentes usan la interfaz web normal) – ZeissS

+16

la administración se niega a usar nada además de Microsoft Palabra. Los Google-Docs eran casi una posibilidad, pero la idea de que alguien más viera sus manuscritos los turbó. No les dije que durante el proceso de correo electrónico más de 20 computadoras "vieron" sus manuscritos también por temor a ser revertidos a un sistema en papel;) – JudoWill

+0

Probablemente debería decirles eso. O cómo Google Docs o una wiki correctamente configurada es más segura que rebotar correos electrónicos no cifrados en todas partes. En el mejor de los casos, te escucharán y te permitirán mejorar las cosas. En el peor, seguirás teniendo el mismo problema. – majinnaibu

Respuesta

1

Las firmas de abogados tienen sistemas extremadamente robustos para hacer esto. Uno que no confía en el historial de revisión en el documento (porque es de origen externo) y en su lugar hace sus propias comparaciones y puede proporcionar deltas. Si eso es lo que realmente necesitan, es mejor comprarlo que poner un envoltorio en git o mercurial que nunca será realmente utilizable para ellos.

Siento sonar pesimista, pero es más probable que los expertos en tecnología usen (aunque refunfuñando) la costosa herramienta comercial que la gente de la oficina usará git o mercurial para cualquier nivel de satisfacción.

+9

No espero que usen git o hg ... Espero que usen Word (o algo así) y luego esperaba usar el complemento para facilitar la fusión. Estoy en una institución académica, así que dudo que pueda pagar una solución personalizada. Por curiosidad, ¿tienes nombres o enlaces a los sistemas de "Firma de abogados"? – JudoWill

1

Utilizando svn (no es git o hg, pero podría tener una puerta de enlace), hay una extensión para Ooo trabajando en archivos XML sin comprimir, consulte my answer para obtener una pregunta similar. BTW, si alguna vez miras el código del complemento y lo haces hg-aware en lugar de svn, ¡házmelo saber! ;-)

9

¿Qué tal:

  1. Guarde sus documentos de Word en XML.
  2. Confirme sus archivos XML Word.
  3. Diferencia usando una herramienta externa XML diff. Por ejemplo:

    $ git difftool -t xmldiff c3d293 498571

La transformación de los archivos XML para tener un elemento por línea debe hacer funcionar el proceso de registro de manera eficiente y también permitir que la herramienta de diferencias XML externo para procesar rápidamente.

Referencias:

8

Si usted está en MS Windows, utilizan TortoiseGit. Simplemente tuve que pasar por esta experiencia dolorosa, y TGit, aunque poco elegante, le quita parte del dolor. Un par de otros puntos:

  • diff Sorprendentemente Git y gitk ambos hacen un trabajo razonablemente bueno de al menos visualizar diferenciaciones entre.docx (no estoy seguro de .doc, pero supongo que es lo mismo). Esto es bueno solo para un escaneo rápido de diffs al hacer commits.
  • Usted está completamente fuera de suerte en cuanto a avance rápido y automotriz se refiere. Lamentablemente, no he encontrado una herramienta que pueda manejar esto (aunque me gusta la idea xml anterior), por lo que tendrá que hacer todas las fusiones manualmente.
  • Microsoft Word (MS Word) tiene una herramienta de fusión decente, aunque defectuosa. AFAIK, solo puede realizar fusiones de 2 vías (, es decir,X0 + dX = X1), no combinaciones de 3 o 2 padres, que son más comunes en el control de versión (es decir .:X0 + dX1 + dX2 = X1). Usted podría resolver los conflictos de fusión utilizando esta herramienta, pero no habría razón alguna misión - el registro de salida de cada rama, exportando CABEZA como una versión sin seguimiento, etc.

    X0 = *.BASE.docx, 
    X0 + dX1 = *.LOCAL.docx and 
    X0 + dX2 = *.REMOTE.docx 
    
  • Por suerte esto es exactamente lo TGIT (y TSVN también hacer. Desgraciadamente, evitaría rebase ya que si tiene que repetir varios cambios seguidos, puede ser muy agotador, pero merge para documentos cortos está bien, pero no es genial.

9

Un buen truco que fue capaz de llegar a que también funciona en los archivos de Open Office, PPT, etc .:

http://xcafebabe.blogspot.hu/2012/09/sexy-comparison-of-word-documents-with.html

Aquí hay una captura de pantalla que muestra el resultado:

enter image description here

+1

+1 para captura de pantalla. ¡Esto es exactamente lo que hace TGit! Esto de lo que estaba hablando en [mi comentario anterior] (http: // stackoverflow.com/a/12312078/1020470), pero solo tiene que crear una _new_ diff/merge-tool si desea poder invocarlo directamente desde git o si no tiene tortoiseXXX. ¿Qué hace mac-folk? Si tiene TGit, simplemente use las extensiones de explorer para diff, merge, etc. Tenga en cuenta que si usa git merge/rebase, seguirá fallando y aún tendrá que fusionar manualmente la palabra docs, que fue una especie de objetivo original. Sigue buscando. NB xml no funcionó. –

+0

¡Genial, gracias por la aclaración! En realidad, solo quería instalar TGit :-) – rlegendi

+1

IMO esta es la mejor respuesta: la publicación del blog enlazado te permite usar el script de diferenciación de palabras de TGit sin necesidad de instalar TGit (que interfiere con el git de Cygwin instalando msysgit) – Rich

3

Respuesta a la pregunta de JudoWill: el trabajo compartido es probablemente la principal herramienta utilizada por los abogados.

2

instrucciones compilado I para múltiples lugares aquí: http://bit.ly/17LaxVY

# download docx2txt by Sandeep Kumar 
wget -O docx2txt.pl http://www.cs.indiana.edu/~kinzler/home/binp/docx2txt 

# make a wrapper 
echo '#!/bin/bash 
docx2txt.pl $1 -' > docx2txt 
chmod +x docx2txt 

# make sure docx2txt.pl and docx2txt are your current PATH. Here's a guide 
http://shapeshed.com/using_custom_shell_scripts_on_osx_or_linux/ 
mv docx2txt docx2txt.pl ~/bin/ 

# set .gitattributes (unfortunately I don't this can't be set by default, you have to create it for every project) 
echo "*.docx diff=word" > .git/info/attributes 

# add the following to ~/.gitconfig 
[diff "word"] 
    binary = true 
    textconv = docx2txt 

# add a new alias 
[alias] 
    wdiff = diff --color-words 

# try it 
git init 

# create my_file.docx, add some content 

git add my_file.docx 

git ci -m "Initial commit" 

# change something in my_file.docx 

git wdiff my_file.docx 

# awesome! 

funciona muy bien en OSX

+0

¿Puede eso revertir? – neuronet

Cuestiones relacionadas