Проблемы с WinSCP со стилем конца строки в Ubuntu Linux при использовании SVN Diff
Вопрос
Мои файлы находятся на удаленном сервере 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".
Простое и подходящее решение этой проблемы можно выполнить, зайдя в конфигурацию внешнего редактора в 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 режиме.