2010-08-29 7 views
5

Ich habe ein LaTeX hg-Repository für ein Papier und ich verwende hg serve, um den Fortschritt meinen Koautoren anzuzeigen. Bis letzte Woche wurde die Datei paper.pdf als binär behandelt und ihr Inhalt wurde nicht in den Changesets angezeigt. (Die Benutzer es über den raw Link herunterladen können)Wie können Sie Mercurial (hg) zwingen, eine Datei als Binärdatei zu behandeln?

Seit letzter Woche Paper.pdf wird als Text behandelt und ich sehe große diffs von PDF-Code in meinem Change ...

Gibt es eine Möglichkeit zu sagen, das Repository, um diese Datei als binär zu behandeln anstatt zu "raten"?

Auf meinem Server (wo hg Läufe dienen):
hg --Version -> Mercurial Distributed SCM (Version 1.0.1)
auf meinem Laptop:
hg --Version -> Mercurial Distributed SCM (Version 1.3.1)

+3

Martins Kommentar zu Tonfas Kommentar ist der Schlüssel - mercurial unterscheidet in keiner Weise zwischen Text und Binär, was die Funktionalität überhaupt beeinflusst. Anders sieht es bei User-Diffs aus (und zwar abhängig von Ihrer --git-Einstellung), aber unter den Covern ist alles binär und es gibt nie irgendwelche Zeilenende-Conversion-Daten, wie sie svn und cvs liefern könnten. –

Antwort

2

Sie können die Heuristik nicht überschreiben (was ziemlich einfach ist, es wird nur nach dem Vorhandensein eines NUL-Bytes in den Daten gesucht).

Ich denke, das generierte PDF ist nicht komprimiert, was bedeutet, es ist nur einfacher Text, und es enthält kein NUL-Byte.

Aber warum ist es wichtig für Sie, es als binär zu haben?

+1

Lassen Sie mich einfach hinzufügen, dass Mercurial unabhängig davon, was 'hg diff' anzeigt, intern ein binäres diff-Format verwendet. –

+0

Ich bin auf der Suche nach Möglichkeiten, einen NULL-Byte irgendwo in der PDF-Datei zu erhalten ... ich das versucht: \ usepackage [pdftex] {} Grafiken \ pdfcompresslevel = 9 aber es scheint, dass ich nicht glücklich war genug, um einen NULL in der PDF zu erhalten. Ich werde noch ein paar hochauflösende Bilder hinzufügen;) Und eines Tages, wenn ich abschicke, werde ich mir den 'hg serve' Quellcode ansehen ... – ivan