2011-03-27 22 views
5

Estoy trabajando en un proyecto LaTeX en este momento para una especie de "tesis", y pensé que sería una idea segura seguir el trabajo en progreso con Git , ya que es probablemente el mejor sistema de control de versiones que he encontrado. Ahora, Git manejará los archivos de código fuente brillantemente, pero ¿qué tan bien maneja los archivos binarios?Manejando archivos PDF/binarios con Git u otro VCS

No estoy seguro de si debo rastrear mis PDF generados, así como las fuentes * .tex. A pesar de que puedo regenerar mis archivos PDF desde cualquier revisión/sucursal, esto puede llevar mucho tiempo y, por lo general, es más rápido sacar la versión PDF correspondiente; ¿Git manejará esto? ¿Hay alguna manera de marcar las versiones explícitas dentro de un repositorio Git y puedo configurarlo para que, por ejemplo, pueda comparar rápidamente el resultado PDF de la versión actual con la semana pasada?

Al revertir a una rama específica se sobrescribirán los PDF, o al menos, requieren una recompilación; Solo quiero poder registrar mi progreso y almacenarlo eficientemente, y en el proceso poder hacer una copia de seguridad de mi trabajo. Git podría ser mi solución, pero ¿hay otras mejores?

EDIT Mi hermano me envió un enlace a alguna documentación en tagging, por lo que resuelve la parte de versionado de mi pregunta.

+0

Quiero evaluar [git-annex] (http://git-annex.branchable.com/) por un tiempo. Podría ser interesante resolver el problema de los archivos binarios grandes y git –

Respuesta

2

Creo que la mejor solución dependerá de cómo vaya a utilizar el VCS. Si va a hacer diffs frecuentemente entre archivos PDF, probablemente no sea una gran solución.

Si va a hacer diffs en la fuente LaTeX y luego echando un vistazo a los PDF asociados, git es probablemente una gran opción. La forma en que lo haría es usar la funcionalidad "bisect" para hacer una especie de pseudo-diff. Bisect se usa normalmente para hacer una búsqueda binaria en el historial de revisión para encontrar un error. La forma en que funciona en bzr, puede dar un comando para ejecutar en cada revisión que dirá bzr si el error estaba presente. Simplemente dé las dos revoluciones que desea ver y haga aparecer el comando para ejecutar.

Personalmente, estaría más inclinado a controlar solo las fuentes reales. Si sus archivos PDF tardan mucho en compilarse, resuelva ese problema por separado. ¿Estás generando todos los archivos PDF cada vez que cambias un archivo fuente? Tal vez un makefile podría resolver eso?

+0

Se llama 'git bisect'. http://www.kernel.org/pub/software/scm/git/docs/git-bisect.html –

+0

Utilizo un sistema similar a make (latexmk) para compilar los PDF, que ejecuta automáticamente xelatex tantas veces como sea necesario, por lo que la compilación solo toma tiempo mientras espero que obtenga todos los archivos que componen mi documento maestro. Normalmente recompilo los archivos PDF después de cada cambio importante en mis fuentes, ya que mi documento es bastante complejo con muchas tablas y flotantes, por lo que debo inspeccionar visualmente la salida, ya que a menudo es necesario realizar algunos ajustes. Estoy principalmente después de la comodidad de comparar visualmente rápidamente dos o más versiones, en lugar de diffs. – Robbie

Cuestiones relacionadas