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