Проблемы с WinSCP со стилем конца строки в Ubuntu Linux при использовании SVN Diff

StackOverflow https://stackoverflow.com/questions/1967361

Вопрос

Мои файлы находятся на удаленном сервере Ubuntu Linux.Когда я загружаю файлы и редактирую их в текстовом редакторе WinSCP или Notepad++, стиль конца строки файла меняется на Windows.Поэтому, когда я повторно сохраняю файл обратно в Ubuntu, строки отключены, и SVN Diff думает, что каждая строка изменилась.

К вашему сведению, я редактирую файл, дважды щелкнув его в WinSCP.Эта программа запускает файл в редакторе.Каждый раз, когда я сохраняю файл, он автоматически копируется обратно на сервер Linux.

Как предотвратить проблему со стилем конца строки?

Это было полезно?

Решение 2

Я не смог понять, почему у меня возникла проблема с пробелами, но смог понять, как игнорировать пробелы.

Вы можете использовать:

svn diff -x'-uw --ignore-eol-style'

Это сработало достаточно хорошо.

Другие советы

Делает эта тема помощь?Точнее эта часть:

Из этого мне кажется, что вы заставили WinSCP использовать передачу в текстовом режиме, что подразумевает преобразование unix->dos.Просто включите двоичный режим, чтобы избежать преобразования.

Вам нужно использовать формат строки unix.Чтобы установить это, перейдите в «Настройки»> «Настройки» и выберите вкладку «Новые документы/Каталог по умолчанию».Найдите «Формат» в элементах управления «Новый документ» и выберите «Unix».Это обеспечит правильный формат любого нового документа.Я использовал это с удаленным Linux-сервером и не заметил проблем.

Обычно возвращаемый файл создается с временным именем и изменениями, записанными в него.Исходный файл затем будет удален, а его место переименовывается в новый файл.Это сделает возвращенный файл «новым» документом, поэтому этот параметр предпочтения должен указывать правильный формат.

Я использую Notepand2 и WinSCP для редактирования файлов в Windows, а сервер находится в Linux.

В моем случае проблема была в самом соединении WinSCP.

Я нажал «Изменить» перед подключением, а затем «Дополнительно», там была опция для символов конца строки.Изменение его решило проблему в моем случае.

Вариант на экране уже тот, который сработал.Раньше был только "LF".

enter image description here

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

В: View > Preferences > Editors

Выберите внешний редактор и нажмите Edit ...

Затем снимите флажок: Force text transfer mode for files edited in external editor

Если вы используете передачу в режиме text/ascii с WinSCP, он преобразует стиль конца строки обратно в Unix при загрузке.

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

Либо исправьте файл, чтобы он использовал стиль Unix должным образом (если это так), либо используйте режим двоичной передачи.

Вам не только необходимо настроить режим двоичной передачи для WinSCP в целом (который используется по умолчанию в последних версиях WinSCP), но также необходимо убедиться, что параметр предпочтения Принудительный режим передачи текста для файлов, редактируемых во внешнем редакторе для вашего внешнего редактора (Notepad++) отключено:
https://winscp.net/eng/docs/ui_editor_preferences

Обратите внимание, что эта опция недоступна для внутреннего редактора WinSCP.С его помощью файлы всегда передаются в текстовом/ascii режиме.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top