2010-08-29 164 views
5

我有一张纸的LaTeX hg存储库,我使用hg serve向我的共同作者显示进度。 直到上周,paper.pdf文件被视为二进制文件,其内容未显示在变更集中。 (该用户可以通过raw链接下载)如何强制Mercurial(hg)将文件视为二进制文件?

自上周以来,paper.pdf被视为文本,我看到在我的变更PDF的代码巨大差异列表...

有没有办法告诉该库将该文件视为二进制文件而不是“猜测”?

我的服务器上(如汞服务运行):
汞--version - >水银分布式SCM(1.0.1版)
我的笔记本电脑:
汞--version - >水银分布式SCM (版本1.3.1)

+3

Martin对Tonfa评论的评论是关键 - mercurial没有以任何影响功能的方式区分文本和二进制文件。它会显示不同的用户面临的差异(并取决于你的 - git设置),但在封面下它是所有二进制文件,并没有任何像svn和cvs可以产生的任何行结束转换dataloss。 – 2010-08-30 02:11:38

回答

2

您不能覆盖启发式(这很简单,它只是检查数据中是否存在NUL字节)。

我想生成的PDF不是压缩的,这意味着它只是纯文本,并且不包含任何NUL字节。

但是,为什么将它作为二进制文件很重要?

+1

让我来补充一下,无论“hg diff”显示了什么,Mercurial都会在内部使用二进制diff格式。 – 2010-08-29 21:52:56

+0

我想办法解决在PDF文件中的某个地方得到一个空字节 ... 我尝试这样做: \ usepackage [Pdftex提供] {}图形 \ pdfcompresslevel = 9 但似乎我不是幸运足以在pdf中获得NULL。 我会添加更多的高分辨率图片;) 有一天,当我提交我会看看'hg serve'源代码... – ivan 2010-08-30 05:29:03

相关问题