Как мне сообщить TortoiseHg, что файл не является двоичным? - PullRequest
24 голосов
/ 21 апреля 2011

Кто-то недавно добавил скрипт PowerShell (.ps1) в наш репозиторий Mercurial.Файл представляет собой простой текст, но TortoiseHg, кажется, думает, что это двоичный файл и отображает сообщение: «Файл или различия не отображаются: файл является двоичным».

Как мне сообщить TortoiseHg, что файлы ps1 являются текстовыми, а не двоичными.Я использую версию TortoiseHg 2.0.3

Ответы [ 3 ]

28 голосов
/ 21 апреля 2011

Файлы кодируются в кодировке UCS-2, и я использовал notepad ++ для преобразования его в UTF-8.

Теперь все готово, Mercurial, похоже, распознает файл как текст и правильно выполняет diff.

Пора мне прочитать это снова!

Возможно, стоит взглянуть на это , так как UCS-2 кажется тесно связанным с UTF-16. Согласно этой ссылке, он заменяет его, но усилия по переносу Windows на UTF-16 с UCS-2 продолжаются до 2000 года!

5 голосов
/ 31 января 2013

Извините за ответ на столь старый пост, но для исторических целей несколько комментариев в порядке.

Во-первых, базовый репозиторий кода (Mercurial) обрабатывает все файлы как двоичные, насколько это возможно. Все, что вы теряете здесь, - это способность видеть различия, физические различия все еще отслеживаются, и природа этих изменений не более велика в силу того факта, что черепаха не может их отобразить. (Двоичные файлы JPEG, напротив, имеют большие двоичные различия даже при небольших изменениях пикселей; тогда как эти файлы будут иметь относительно небольшие различия.)

Во-вторых, хотя Tortoise не может отобразить различия, kdiff3 может это сделать, если вы правильно настроили файл mercurial.ini. В вашем домашнем каталоге у вас, скорее всего, есть файл mercurial.ini, даже если вы просто записываете свое имя пользователя. Если вы расширите его, чтобы включить шаблоны слияния. Ищите здесь шаблоны слияния: http://www.selenic.com/mercurial/hgrc.5.html.

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

1 голос
/ 29 ноября 2012

Использование notepad ++ помогает преобразовать кодировку UCS-2 в UTF-8.

Однако, когда я использую его, например, для преобразования файла XML (Visual Studio csproj), не забудьте изменить кодировку XML с utf-16 на utf-8, например:

<?xml version="1.0" encoding="utf-8"?>
...