¿Cómo almacenar documentos abiertos (.docx, .vsdx, …) en Git?

Me gustaría almacenar diagtwigs de Microsoft Visio 2013 en mi repository de Git. Estos diagtwigs se convierten posteriormente en SVG y PDF para la documentation del software creada con Sphinx.

Desafortunadamente, los files de documentos abiertos son files binarys (de hecho son files ZIP) y a Git no le gustan mucho los files binarys.

Me di count de que si descomprimía mi file vsdx , obtengo muchos files xml que son más manejables usando Git.

El problema es que necesito enganchar algunas secuencias de commands a Git para almacenar solo los files descomprimidos de documentos abiertos en el repository, pero mantener la versión comprimida en el directory de trabajo. ¿Es eso algo factible y deseable para networkingucir la huella global del repository?

El objective es que si muevo una forma en mi diagtwig de Visio no quiero casi duplicar mi file megabyte vsd en mi repository. Imagino que el file XML de 2 megabytes con un cambio de línea tiene más posibilidades de ser comprimido en Git Packfiles.

¿Es eso correcto?

Si le preocupan los problemas de memory al trabajar con grandes files de Visio, ¿por qué no aprovechar la naturaleza distribuida de git y configurar varios repositorys? Al igual que.

 Root Folder (Git Repo) .gitignore (that ignores the Visio Folder) Visio Folder (Also a Git Repo) 

Trabaja libremente, comprometiendo tus files de Visio sin preocuparte. Luego, cuando esté satisfecho con sus cambios, simplemente mueva el file deseado a un directory. Extraiga y comprométalo. Esto puede parecer poco elegante, pero si su carpeta Visio se vuelve inviable por cuestiones de memory, puede destruirla, ya que todo lo que necesita está en el repository git debajo de él. (La única forma real de evitar que grandes files binarys ocupen espacio en el repository es no comprometerlos).

Si esta solución es demasiado cruda, configure su carpeta Visio como un control remoto para la carpeta raíz. Haga que su carpeta de Visio contenga dos twigs separadas, una que contenga confirmaciones que incluyan sus files gigantes y otra que no lo haga. Solo obtenga de la sucursal sin los files de Visio. Si eso todavía no le da el control, necesita configurar controles remotos, subcarpetas, etc. hasta que obtenga una estructura de repository que le pueda generar un flujo de trabajo y un historial significativos.

Agregar un control remoto local

 cd 'Root Folder' git remote add visiofiles 'Visio Folder' 

Si te sientes aventurero, podrías investigar los filters "limpio" y "difuminar" de git (se les llama a los files cuando te comprometes y finalizas la compra; están destinados a permitirte usar reglas de sangrado que difieren de tu equipo, pero puede ser capaz de comprimir y descomprimir cosas). Si está extrayendo files de Visio para poder inspeccionar mejor los cambios, puede enviar un post de text con la ventaja de la configuration textconv de git. Git te permite llamar a diffs personalizados en los files, y un método es simplemente convertir ese file a una cadena y ejecutar un diff sobre eso. Esto requiere que te sientas un poco cómodo con los files .gitconfig y .gitattributes y encuentres un progtwig adecuado para la conversión de cadenas.

Sin embargo, el problema que describes fue un problema de memory, por lo que los ganchos y las configuraciones que tienes disponibles podrían no ser necesarios.