2010-08-29 11 views
5

Tengo un repositorio LaTeX hg para un artículo y uso hg serve para mostrar el progreso a mis coautores. Hasta la semana pasada, el archivo paper.pdf se trató como binario y sus contenidos no se mostraban en los conjuntos de cambios. (Los usuarios pueden descargar a través del enlace raw)¿Cómo se puede obligar a Mercurial (hg) a tratar un archivo como binario?

Desde la semana pasada, Paper.pdf se trata como texto y no veo grandes diferenciaciones de código PDF en mis conjuntos de cambios ...

¿Hay una manera de contar el repositorio para tratar este archivo como binario en lugar de "adivinar"?

En mi servidor (donde se ejecuta hg serve):
hg --version -> Mercurial SCM distribuido (versión 1.0.1)
en mi portátil:
hg --version -> mercurial distribuido SMC (versión 1.3.1)

+3

El comentario de Martin sobre el comentario de Tonfa es la clave: mercurial no diferencia entre el texto y el binario de ninguna manera que afecte la funcionalidad en absoluto. Aparecerá diferente en las diferencias de usuario (y dependiendo de su configuración de git), pero debajo de las cubiertas todo es binario y nunca habrá ninguna conversión de final de línea dataloss como svn y cvs podrían ceder. –

Respuesta

2

No puede anular la heurística (que es bastante simple, solo comprueba la presencia de un byte NUL en los datos).

Supongo que el PDF generado no está comprimido, lo que significa que es solo texto sin formato, y no contiene ningún byte NUL.

¿Pero por qué es importante tenerlo como binario?

+1

Permítanme agregar que, independientemente de lo que 'hg diff' le muestre, Mercurial usará un formato de diferencias binarias internamente. –

+0

Estoy mirando en maneras de conseguir un byte nulo en algún lugar en el archivo PDF ... yo probamos este: \ usepackage [pdftex] {gráficos} \ pdfcompresslevel = 9 pero parece que no era suerte suficiente para obtener un NULL en el pdf. Agregaré más imágenes de alta resolución;) Y un día cuando lo envíe, veré el código fuente 'hg serve' ... – ivan

Cuestiones relacionadas