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

"Непоследовательный стиль окончания линии" кошмар

Я полностью застрял в ошибке SVN при одновременном сбое 2447 файлов. Я использую TortoiseSVN (последняя версия) для Windows 7 64 бит.

Дело в том, что некоторые файлы были созданы на Mac, а другие на ПК, поэтому TortoiseSVN остановил коммит с раздражающей ошибкой Inconsistent line ending style.

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

Конечно, я искал в Интернете решение, но я не нашел подходящего для среды Windows.

В настоящее время я ударяю головой о стены.

4b9b3361

Ответ 1

В Windows 7 вы можете использовать Notepad++ v5.6.8 для преобразования EOL

Изменить → EOL Conversion → Windows/Unix/Mac

Ответ 2

Поэтому я отвечаю на свой вопрос @assylias answer :

Вы можете захватить w: (\w)\n$ и заменить его на $1\r\n, где $1 - символ.

Поиск & замена на Netbeans этим регулярным выражением делает свою работу.

Изменение: моя проблема заключалась в том, что пользовательский скрипт вставил неправильные символы EOL (\n вместо \r\n) в эти файлы)

Ответ 3

В Notepad ++ выберите "Вид → Показать символ → Показать конец строки"

В окне поиска (Control-F) выберите режим поиска в обычном выражении и найдите строку:

[^\т]\п $

(перевод:\n без \r перед ним).

Это приведет вас непосредственно к проблемной строке, где вы увидите строку, заканчивающуюся на LF, а не с помощью пары CR-LF

Ответ 4

Если ваши окончания строк все в порядке, возможно, ваш текстовый файл имеет маркер порядка байтов UTF16 (спецификация).

Вы можете исправить это с помощью Notepad ++. Кодирование → Преобразование в UTF-8.

Ответ 5

В Vim или GVim под Windows разбитые файлы показали ^M в конце каждой строки.

Чтобы исправить это: :s/\r//g, чтобы удалить сломанные дополнительные строки.

Ответ 6

В отношении сообщения только выше, на самом деле vim regexp должен быть :1,$s/\r//g. Другой способ: * n? X использует sed:

sed -i '-es/\ r//g'

Ответ 7

Чтобы решить проблему с разными окончаниями строк, вы можете установить свойство SVN следующим образом:

svn propset svn: собственный файл my_file в стиле eol

Несмотря на то, что это решит проблемы с окончанием очереди и упростит слияние, это будет означать, что виноват человек, добавляющий стиль eol как сменщик всех строк, а также означает, что ваши рабочие файлы в конечном итоге будут скопированы во временную папку при выполнении diff.

Проблема вины может быть решена после этого:

svn blame my_file -x "--ignore-space-change -ignore-eol-style"

Ответ 8

Я открыл окно свойств проекта, щелкнув правой кнопкой мыши на проводнике, просматривая репозиторий, который я хотел отредактировать, и выбрав:

TortoiseSVN > Properties > New... > EOL > As is (no specific EOL).