2009-09-10 1 views
2

Можно создать дубликат:
Why does Mercurial think my SQL files are binary?Mercurial выполняет двоичное сравнение для определенных типов файлов

Я недавно начал использовать Mercurial и когда я вернулся один из моих .SQL файлов, Mercurial выполнил двоичное сравнение. Это, очевидно, ограничивает видимость изменений, которые были сделаны, так как нет разницы.

Есть ли возможность установить типы файлов для сравнения строк?

Я использую Tortioise Hg 0.8.1 с Mercurial 1.3.1.

ответ

7

Mercurial фактически не обрабатывает текст и двоичные файлы по-разному относительно фактического хранилища. Тем не менее, он пытается угадать «визуально продемонстрировал бы, что этот diff имеет смысл», когда его попросят показать разницу с пользователем с «hg diff», «hg log -p» или при просмотре набора изменений в веб-интерфейсе. Когда он пытается сделать так: «должен ли я показывать это, как если бы это было текстовое» решение, которое было применено, - «Есть ли NUL-байт (0x00) в первых 1000 байтах файла.

Так что ваш файл не является обработанные по-разному, за исключением того, как он отображается на выходе пользователя, но если вы можете найти нулевой байт там, вы, возможно, тоже можете его остановить.

В качестве альтернативы расширение extdiff можно использовать для полного контроля над тем,

+1

Тест в util.binary теперь ищет NUL байт во всем файле. –

0

Вы должны попытаться добавить эти строки в ~/.hgrc:

[diff] 
git=1 

мерзавец формат дифф работает для двоичных файлов.

+3

Я думаю, он говорит, что хочет, чтобы файлы рассматривались как текст, а не бинарные файлы. –

+0

Правда. В этом случае ответ «вы должны подумать о том, чтобы не иметь нулевых байтов в первых тысячах байтов вашего файла». – joeforker

2

Я не знаю о графической части TortoiseHg, но если вы используете командную строку, то флаг --text на hg diff должен сделать трюк: он заставляет Mercurial лечить al l файлы в виде текста.

Смежные вопросы