2010-07-21 20 views
27

He estado jugando con git y hg últimamente y de repente se me ocurrió que este tipo de cosas serán geniales para los documentos.¿Control de versión para DOCX y PDF?

Tengo un documento que edito en DOCX y lo exporto como PDF. Intenté usar tanto git como hg para controlar la versión y resulta que con hg terminas rastreando solo binario y no es significativo. Aunque con git puedo diferir DOCX (aún no lo he probado en PDF), me preguntaba si existe una forma mejor de hacerlo que hacerlo ahora mismo. (Lo ideal es no tener que salir de Word para diff será la mejor solución.)

- Ashish Gandhi

Respuesta

13

Hay dos conceptos diferentes aquí - uno es "¿Puede el sistema de control de versiones hacer algunos juicios inteligentes sobre el contenido de los archivos? " - para que pueda almacenar información delta entre revisiones (y hacer cosas como asignar responsabilidad a partes individuales de un archivo).

La otra es 'tengo una herramienta de comparación de archivos que es útil para los tipos de archivos que tengo en el sistema de control de versiones'. Los sistemas de control de versiones suelen venir con herramientas de comparación de archivos que son inferiores a las alternativas dedicadas. Pero casi siempre pueden estar vinculados a mejores programas de diferencias, ya sea para todos los tipos de archivos o específicos.

Por lo tanto, es común usar, por ejemplo, Beyond Compare como una herramienta de comparación general, con Word como un comparador de documentos de Word dedicado.

Los diferentes sistemas de control de versiones difieren en cómo las personas perciben que manejan 'binarios', pero eso con frecuencia tiene tanto que ver con el manejo de archivos grandes y el bloqueo exclusivo como con la comparación de archivos.

+0

Sí, estoy al tanto de las discusiones sobre la capacidad "binaria". Entonces, ¿qué sugieres? ¿Cómo se debe comenzar a registrar el historial de sus DOCX? –

+1

Los pondría en cualquier tipo de VCS y configuro ese VCS para usar Word para comparar archivos DOCX. –

+0

¿Cómo configuro TortoiseHg para hacer esto automáticamente cuando hago doble clic en una versión anterior del DOCX? –

4

Puede usar Beyond Compare como herramienta de diferencia externa para hg. Añadir/cambiar sus mercurial.ini usuario como:

[extdiff] 
cmd.vdiff = c:/path/to/BCompare.exe 

a continuación, obtener que no tiene comparación file viewer rule para docx.

Ahora debería poder comparar dos versiones de docx en Beyond Compare.

5

incluye un complemento llamado docdiff que integra Word y Excel diff'ing

3

instrucciones Sólo para docx, I recopilados de varios lugares aquí: https://gist.github.com/nachocab/6429893

# 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 commit -m "Initial commit" 

# change something in my_file.docx 

git wdiff my_file.docx 

# awesome! 

funciona muy bien en OSX

2

Si usted usa un Mac, escribí un git merge controlador que puede utilizar Microsoft Word y los cambios realizados para fusionar y mostrar conflictos entre cualquier tipo de archivo Word puede leer & escribir.

http://github.com/jasmas/wordMerge

digo 'si quieres pasar a utilizar un Mac' porque el conductor escribí utiliza AppleScript, principalmente para llevar a cabo esta tarea.

Sería bueno agregar una versión de vbscript al proyecto, pero por el momento no tengo un entorno de Windows para probar.Cualquier persona con conocimientos básicos de scripting debería poder echar un vistazo a lo que estoy haciendo y duplicarlo en vbscript, powershell o lo que sea en Windows.

Cuestiones relacionadas