2010-08-29 14 views
5

Mam repozytorium LaTeX hg dla papieru i używam hg serve, aby wyświetlić postęp moich współtwórców. Do ubiegłego tygodnia plik paper.pdf był traktowany jako plik binarny, a jego zawartość nie była wyświetlana w zestawach zmian. (Użytkownicy mogą pobrać go za pośrednictwem łącza raw)Jak zmusić Mercurial (hg) do traktowania pliku jako pliku binarnego?

Od ubiegłego tygodnia, paper.pdf jest traktowany jako tekst i widzę ogromne dyferencjału kodu PDF Zestawienia zmian w moim ...

Czy istnieje sposób, aby powiedzieć repozytorium traktujące ten plik jako binarny zamiast "zgadywania"?

na mój serwer (gdzie Hg służyć przebiegów):
Hg version -> Mercurial Ukazuje SCM (wersja 1.0.1)
na moim laptopie:
Hg version -> Rozproszone Mercurial SCM (wersja 1.3.1)

+3

Komentarz Martina dotyczący komentarza Tonfy jest kluczem - rtęć nie rozróżnia tekstu i binarki w żaden sposób wpływający na funkcjonalność. Będzie się wyświetlał inaczej w zależnościach od użytkownika (i w zależności od ustawień --git), ale pod pokrywami wszystko jest binarne i nigdy nie będzie żadnych końcowych danych konwersji, takich jak svn i cvs. –

Odpowiedz

2

Nie można przesłonić heurystyki (co jest dość proste, sprawdza tylko obecność bajtu NUL w danych).

Zgaduję, że wygenerowany plik PDF nie jest skompresowany, co oznacza, że ​​jest to zwykły tekst i nie zawiera żadnego bajtu NUL.

Ale dlaczego ważne jest, aby mieć go jako plik binarny?

+1

Pozwolę sobie dodać, że niezależnie od tego, co pokazuje 'hg diff', Mercurial użyje wewnętrznie formatu binarnego diff. –

+0

szukam do sposobów, aby uzyskać bajt NULL gdzieś w pliku PDF ... Próbowałem to: \ usepackage [pdftex] {} graficznej \ pdfcompresslevel = 9 ale wydaje się, że nie jestem szczęśliwy wystarczy, aby uzyskać NULL w pliku pdf. Dodam trochę więcej zdjęć o wysokiej rozdzielczości;) I pewnego dnia, kiedy zgłoszę, przyjrzę się kodowi źródłowemu 'hg serve' ... – ivan

Powiązane problemy