¿Control de versiones para DOCX y PDF?
He estado jugando con git
y hg
últimamente y de repente se me ocurrió que este tipo de cosas será genial para los documentos.
Tengo un documento que edito en DOCX y exporto como PDF. Intenté usar git
y hg
para controlarlo y resulta que con hg
terminas rastreando solo binario y la diferencia no es significativa. Aunque con git
puedo diferenciar significativamente DOCX (no he probado en PDF todavía) Me preguntaba si hay una mejor manera de hacerlo de lo que estoy lo estoy haciendo ahora mismo. (Idealmente, no tener que dejar Palabras para diff será la mejor solución.)
-- Ashish Gandhi
6 answers
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 solo información delta entre revisiones (y hacer cosas como asignar responsabilidad a partes individuales de un archivo).
El otro 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 tienden a venir con herramientas de comparación de archivos que son inferior a las alternativas dedicadas. Pero casi siempre se pueden vincular a mejores programas de diferencias, ya sea para todos los tipos de archivos o para algunos específicos.
Así que 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 cuanto a cuán buenas personas perciben que son en el manejo de 'binarios', pero eso a menudo tiene tanto que ver con el manejo de archivos enormes y proporcionar bloqueo exclusivo como tiene que ver con la comparación de archivos.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-21 11:13:35
Http://tortoisehg.bitbucket.io/ incluye un plugin llamado docdiff que integra Word y Excel diff ing.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-20 11:21:09
Puede usar Beyond Compare como herramienta de comparación externa para hg. Añadir / cambiar su usuario mercurial.ini as:
[extdiff]
cmd.vdiff = c:/path/to/BCompare.exe
Luego obtenga Beyond Compare file viewer rule para docx.
Ahora debería poder comparar dos versiones de docx en Beyond Compare.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-09-22 01:15:49
Este artículo describe la solución para Docx usando Pandoc Mientras que este post describe la solución para PDF usando pdf2html.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-28 17:43:11
Solo para docx, compilé instrucciones para múltiples 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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-26 17:09:31
Si utilizas un Mac, escribí un controlador git merge que puede usar Microsoft Word y rastreé los cambios para fusionar y mostrar conflictos entre cualquier tipo de archivo que Word puede leer y escribir.
Http://github.com/jasmas/wordMerge
Digo 'si se utiliza un Mac' porque el controlador que escribí utiliza AppleScript, principalmente para llevar a cabo esta tarea.
Sería bueno agregar una versión vbscript al proyecto, pero por el momento no tengo un entorno Windows para probar. Cualquier persona con algún conocimiento básico de scripting debería poder echar un vistazo a lo que estoy haciendo y duplicarlo en vbscript, powershell o lo que sea en Windows.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-10 19:08:35