Eclipse и Windows newlines

Мне пришлось переместить рабочее пространство Eclipse из Linux в Windows, когда мой рабочий стол разбился. Через неделю я скопирую его обратно в Linux, код счастливо передаст CVS. И, увы, окна newlines загрязнили много файлов, поэтому CVS diff сбрасывает весь файл, даже когда я изменил строку или две!

Я мог бы приготовить script, но мне интересно, испортит ли он мои файлы проекта Eclipse.

Ответ 1

Как упоминалось здесь и здесь:

Установите кодировку файла UTF-8 и окончание строк для новых файлов в Unix, чтобы текстовые файлы сохранялись в формате, не относящемся к ОС Windows, и наиболее легко разделялись на гетерогенных настольных компьютерах разработчиков:

  • Перейдите к настройкам рабочей области (Общие: Рабочая область)
  • Измените кодировку текстового файла на UTF-8
  • Измените разделитель строки нового текстового файла на другой и выберите Unix из списка выбора

alt text

  • Примечание. Чтобы преобразовать окончание строки существующего файла, откройте файл в Eclipse и выберите File : Convert Line Delimiters to : Unix

Совет. Вы можете легко преобразовать существующий файл, выбрав его в проводнике пакетов, а затем перейдите к записи меню File : Convert Line Delimiters to : Unix

Ответ 2

У меня было то же самое, затмение загрязненных файлов даже при одном изменении строки. Настройки Eclipse git → Добавить запись: Ключ: core.autocrlf Значения: true

введите описание изображения здесь

введите описание изображения здесь

Ответ 3

Существует удобная утилита bash - dos2unix - это конвертер формата текстового файла DOS/MAC в UNIX, который, если он еще не установлен на вашем дистрибутиве, должен быть легко установлен через диспетчер пакетов. справочная страница dos2unix

Ответ 4

В дополнение к решениям Eclipse и инструменту, указанным в другом ответе, рассмотрите flip. Он может "переворачиваться" в любом случае между обычными и линейными червями Windows и делает приятные вещи, такие как сохранение временной метки файла и других характеристик.

Вы можете использовать его так, чтобы решить вашу проблему:

find . -type f -not -path './.git/*' -exec flip -u {} \;

(Я помещаю в предложение игнорировать ваш каталог .git, если вы используете git, но поскольку flip игнорирует двоичные файлы по умолчанию, вам может и не понадобиться.)

Ответ 5

Вы можете попробовать. Проблема в том, что Windows добавляет возврат каретки, а также линию, когда задается новая строка. Unix-системы просто вставляют строку. Таким образом, дополнительный символ возврата каретки может быть причиной того, что ваше затмение испортится с новыми линиями.

Возьмите один или два файла из вашего проекта и преобразуйте их. Вы можете использовать Notepad ++ для этого. Просто откройте файл, перейдите в Format- > Convert to Unix (когда вы используете окна).

В Linux просто попробуйте это в командной строке:

sed 's/$'"/`echo \\\r`/" yourfile.java > output.java

Ответ 6

Чтобы рекурсивно удалить возвращаемые каретки (\r) из файлов CVS/* во всех дочерних каталогах, запустите в оболочке unix следующее:

find ./ -wholename "\*CVS/[RE]\*" -exec dos2unix -q -o {} \;