Hay formatos que en realidad son archivos zip disimulados, p. Ej. docx u odt. Si los guardo directamente en control de versiones, se manejan como archivos binarios. Mi solución ideal seríaArchivos comprimidos que controlan la versión (docx, odt)
- tienen un gancho que se crea un directorio
foo.docx/
para cadafoo.docx
archivos antes de cometer, descomprimir todos los archivos en ella - opcionalmente, tienen un gancho que resangra los archivos xml
- tienen un gancho
foo.docx
que recrea a partir de los archivos almacenados después de la actualización
no quiero el docx archivos a sí mismos bajo control de versiones. (Estoy al tanto de un related question donde se sugirió un enfoque diferente con un diff personalizado)
¿Es esto factible? ¿Es esto factible con mercurial?
ACTUALIZACIÓN:
que sé de ganchos. Estoy interesado en los detalles. Aquí hay una sesión para demostrar el comportamiento esperado.
> hg add foo.docx
> hg status
A foo.docx
> hg commit
> # Change foo.docx with external editor
> hg status
M foo.docx
> hg diff
+++ foo.docx/word/document.xml
- <w:t>An idea</w:t>
+ <w:t>A much better idea</w:t>
'git' tiene el comportamiento de gancho que permitirá esto, pero no sé acerca de hg – Daenyth
En cuanto a su segundo punto: Tenga en cuenta que estos formatos de documento (especialmente .xslx y ODF) no tratan el espacio en blanco especificado por el estándar XML pero, sobre todo para fines prácticos, preserva el espacio en blanco, incluso si esto no está indicado.Por lo tanto, volver a encriptar un archivo puede cambiar los contenidos. –
¿Por qué exactamente no quieres que los archivos de formato zip se pongan en control de revisión? ¿Cuál es el problema que quieres resolver? – Rudi