如何强制Mercurial(hg)将文件视为二进制文件?

5
我有一个关于一篇论文的LaTeX hg仓库,我使用hg serve向我的合作者展示进展情况。 直到上周,文件paper.pdf被视为二进制文件,其内容不会在更改集中显示。(用户可以通过raw链接下载它)
自从上周以来,paper.pdf被视为文本文件,我看到了巨大的PDF代码差异在我的更改集中...
有没有办法告诉仓库将此文件视为二进制文件而不是“猜测”?
在我的服务器上(其中运行hg serve):
hg --version --> Mercurial Distributed SCM (版本1.0.1)
在我的笔记本电脑上:
hg --version --> Mercurial Distributed SCM (版本1.3.1)

3
马丁对Tonfa的评论是关键--Mercurial在功能上不会以任何方式区分文本和二进制文件,它们在用户界面的差异显示可能不同(取决于--git设置),但在底层都是二进制的,不像SVN和CVS那样存在换行转换数据丢失的问题。 - Ry4an Brase
1个回答

2

你无法覆盖启发式算法(它非常简单,只检查数据中是否存在空字节)。

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

但是为什么对你来说将其作为二进制文件很重要呢?


1
让我补充一句,无论 hg diff 显示什么,Mercurial 内部都将使用二进制差异格式。 - Martin Geisler
我正在研究如何在PDF文件中获取空字节的方法......我尝试了以下代码:
\usepackage[pdftex]{graphics} \pdfcompresslevel=9但似乎我没有走运,没有在pdf中获得空字节。 我会添加一些更高分辨率的图片 ;) 有一天当我提交时,我会查看hg serve源代码......
- ivan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接