Почему mercurial (hg) рассматривает мои решения Visual Studio (.sln) как двоичные? - PullRequest
3 голосов
/ 05 сентября 2011

Я получаю сообщение «Файл или различия не отображаются: файл является двоичным.»

Почему mercurial (hg) рассматривает мои решения для видеостудии (.sln) как двоичные?

А как мне это остановить?

Спасибо

Ответы [ 2 ]

6 голосов
/ 05 сентября 2011

Я опробовал это на одном из моих проектов, и файл sln был обработан как текстовый файл. Проверьте, не содержит ли ваш файл sln другую кодировку, например UTF-16. В противном случае Hg не должен рассматривать его как двоичный файл. Попробуйте явно преобразовать / изменить кодировку в UTF-8 / ASCII и посмотрите.

2 голосов
/ 06 сентября 2011

Для фактического хранения Mercurial обрабатывает все файлы как двоичные. Он никогда не выполняет преобразование строк или что-либо еще, что требует рассмотрения вещей как текста или знания кодировки файла.

Однако на уровне пользовательского интерфейса (отдельно от уровня хранилища) он будет стараться не заполнять ваш экран двоичным gookus, и для этого он использует простой тест - файл не будет отображаться в diff-файлах, если он содержит один или несколько символов NUL (0x00).

Так что ваш файл .sln должен иметь где-то 0x00. Самая распространенная причина - неправильное поведение редакторов, помещающих метку порядка байтов (BOM) в начало файла.

Если вы можете удалить NUL, Mercurial отобразит содержимое файла, и если вы не можете, я думаю, вам не повезло.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...