Подтвердить что ты не робот

Как сообщить TortoiseHg, что файл не является двоичным?

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

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

4b9b3361

Ответ 1

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

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

Это время, когда я прочитал это снова!

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

Ответ 2

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

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

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

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

Ответ 3

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

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

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