Ответ 1
В Windows 7 вы можете использовать Notepad++ v5.6.8
для преобразования EOL
Изменить → EOL Conversion → Windows/Unix/Mac
Я полностью застрял в ошибке SVN при одновременном сбое 2447 файлов. Я использую TortoiseSVN (последняя версия) для Windows 7 64 бит.
Дело в том, что некоторые файлы были созданы на Mac, а другие на ПК, поэтому TortoiseSVN остановил коммит с раздражающей ошибкой Inconsistent line ending style
.
В начале, чтобы решить эту проблему, я вручную открыл инкриминируемый файл в netbeans, добавил одно пустое место, удалил его и сохранил файл, чтобы Netbeans правильно преобразовывал все строки, заканчивающиеся символами, но, похоже, там больше, чем "некоторые файлы", инкриминируются.
Конечно, я искал в Интернете решение, но я не нашел подходящего для среды Windows.
В настоящее время я ударяю головой о стены.
В Windows 7 вы можете использовать Notepad++ v5.6.8
для преобразования EOL
Изменить → EOL Conversion → Windows/Unix/Mac
Поэтому я отвечаю на свой вопрос @assylias answer :
Вы можете захватить w:
(\w)\n$
и заменить его на$1\r\n
, где$1
- символ.
Поиск & замена на Netbeans этим регулярным выражением делает свою работу.
Изменение: моя проблема заключалась в том, что пользовательский скрипт вставил неправильные символы EOL (\n
вместо \r\n
) в эти файлы)
В Notepad ++ выберите "Вид → Показать символ → Показать конец строки"
В окне поиска (Control-F) выберите режим поиска в обычном выражении и найдите строку:
[^\т]\п $
(перевод:\n без \r перед ним).
Это приведет вас непосредственно к проблемной строке, где вы увидите строку, заканчивающуюся на LF, а не с помощью пары CR-LF
Если ваши окончания строк все в порядке, возможно, ваш текстовый файл имеет маркер порядка байтов UTF16 (спецификация).
Вы можете исправить это с помощью Notepad ++. Кодирование → Преобразование в UTF-8.
В Vim или GVim под Windows разбитые файлы показали ^M
в конце каждой строки.
Чтобы исправить это: :s/\r//g
, чтобы удалить сломанные дополнительные строки.
В отношении сообщения только выше, на самом деле vim regexp должен быть :1,$s/\r//g
.
Другой способ: * n? X использует sed:
sed -i '-es/\ r//g'
Чтобы решить проблему с разными окончаниями строк, вы можете установить свойство SVN следующим образом:
svn propset svn: собственный файл my_file в стиле eol
Несмотря на то, что это решит проблемы с окончанием очереди и упростит слияние, это будет означать, что виноват человек, добавляющий стиль eol как сменщик всех строк, а также означает, что ваши рабочие файлы в конечном итоге будут скопированы во временную папку при выполнении diff.
Проблема вины может быть решена после этого:
svn blame my_file -x "--ignore-space-change -ignore-eol-style"
Я открыл окно свойств проекта, щелкнув правой кнопкой мыши на проводнике, просматривая репозиторий, который я хотел отредактировать, и выбрав:
TortoiseSVN > Properties > New... > EOL > As is (no specific EOL).