Сегодня выяснил, как получилось что .dfm-файлы сохранились в UTF-8 вместо ANSI. Виноватой оказалась TortoiseSVN 1.5.3, точнее баг в TortoiseMerge. Оказалось что строки изменили кодировку после использования пункта меню Use This Text Block.
В результате получилось, что и слева и справа, один и тот же текст, но в левой панели он в ANSI, а в правой в UTF-8 w/o BOM. При этом эти строки подсвечиваются как разные, но с символом "=". А я ещё помню, что удивлялся этому "=", когда Commit делал.
Вчера искал какую-нибудь программку, которая смогла бы пройтись по всем файлам проекта, и выдала список файлов сохранённых в UTF-8, но так и не смог ничего найти. Казалось бы, очевидная функция, ан нигде её нет. Поставил пару бесплатных блокнотов - все умеют определять кодировку, но только при открытии файла в редакторе. А вручную открывать 30 000 файлов с исходниками совсем не хочется. К счастью нашлась одна бесплатная библиотечка умеющая определять кодировку файла, с её помощью быстренько был получен список. Нарушители было сконвертированы назад в ANSI и закоммичены в репозиторий.
Сообщил об ошибке куда следует. Буду ждать ответа.
p.s. всё-таки не стоит спешить с установкой свежих версий, если устраивают старые.
Update: исправили.
Motto
В тихом саду здравомыслияЧогьям Трунгпа РИНПОЧЕ
Пусть на вас постоянно падают
кокосовые орехи пробужденности.
вторник, 9 сентября 2008 г.
Подписаться на:
Комментарии к сообщению (Atom)
>>Сообщил об ошибке куда следует. Буду ждать ответа.
ОтветитьУдалитьТак их!
>>всё-таки не стоит спешить с установкой свежих версий, если устраивает и в старых.
Правильно. Я только stable ставлю.
Чем старше продукт, тем тяжелее, имхо, с ним работать.
Лучше несколько атомарных программ и самостоятельно координировать получаемый результат, чем одна навороченная в которой хрен разберешься.
> Правильно. Я только stable ставлю.
ОтветитьУдалитьЭто и есть stable. Самый что ни на есть последний официальный стабильный билд. И в стабильных билдах полно багов. =)
> Лучше несколько атомарных программ и самостоятельно координировать получаемый результат, чем одна навороченная в которой хрен разберешься.
Смотря какие программы. =)
>> Вчера искал какую-нибудь программку, которая смогла бы пройтись
ОтветитьУдалить>> по всем файлам проекта, и выдала список файлов сохранённых в
>> UTF-8, но так и не смог ничего найти
Неплохо работает
file *.txt | grep UTF
(в cygwin-е или линуксе)
> Неплохо работает
ОтветитьУдалить> file *.txt | grep UTF
> (в cygwin-е или линуксе)
Я в линуксе почти ничего не умею. Ради интереса поставил cygwin.
"file *.txt | grep UTF" работает хорошо, но у меня показывает только файлы из текущей директории. Я так и не понял как сделать чтобы он обходил всё дерево каталогов начиная с текущего.
> как сделать чтобы он обходил всё дерево каталогов начиная с текущего
ОтветитьУдалитьМожно рекурсивно поиском:
find . \( -name '*.pas' -or -name '*.dfm' -or -name '*.txt' \) -exec file '{}' \; | grep UTF
Спасибо, nickless! =)
ОтветитьУдалитьтеперь осталось научиться быстро набирать это по памяти =)